ホームページ >運用・保守 >Linuxの運用と保守 >Linuxでのfindコマンドの使い方を詳しく解説
Windows では、特定のパスのファイルを検索したり、特定のパスのファイルを検索しないように設定したりできます。Linux で find コマンドを -path -prune パラメーターと組み合わせて使用して、Linux でこの機能を実装する方法を見てみましょう。 。
現在のディレクトリでファイルを検索していて、現在のディレクトリに dir0、dir1、dir2... や dir00、dir01...dir10 などの多数のファイルとディレクトリ (マルチレベルのディレクトリ) がある場合、 dir11... などのサブディレクトリ。
1. 現在のディレクトリ内のすべての txt サフィックス ファイルを検索します
find ./ -name *.txt
2. 現在のディレクトリ内の dir0 ディレクトリとサブディレクトリ内の txt サフィックス ファイルを検索します
find ./ -path ' 。 /dir0*' -name *.txt
3. 現在のディレクトリの dir0 ディレクトリの下のサブディレクトリ dir00 とそのサブディレクトリで txt サフィックス ファイルを検索します
find ./ -path '*dir00*' -name * .txt
4. dir0 およびサブディレクトリ以外のディレクトリで txt サフィックス ファイルを検索します
find ./ -path './dir0*' -a -prune -o -name *.txt -print
手順: -a は省略形である必要がありますof and は、論理演算子 'or' (&&) を意味します。 -o は、論理演算子 'and' (||) を意味する or の省略形である必要があります。 -not は、not を意味します。
コマンドライン 意味:ディレクトリ dir0 が存在する (つまり、-a の左側が true) 場合、-prune の値を見つけます。-prune は true を返し、「AND」論理式は true (つまり、-path './dir0) です。 *' -a - prune が true)、ディレクトリ dir0 が存在しない場合 (つまり、-a の左側が false の場合)、find コマンドはこのディレクトリ以外のディレクトリで txt サフィックス ファイルを検索し、出力します。 , -prune は評価されません。「AND」論理式 式が false の場合、現在のディレクトリ内のすべての txt サフィックス ファイルが検索されます。
5. dir0、dir1、およびサブディレクトリ以外のディレクトリで txt サフィックス ファイルを検索します
find ./ /( -path './dir0*' -o -path './dir1*' /) -a - prune -o -name *.txt -print
注: 括弧 () は式の組み合わせを示します。つまり、後続の文字について特別な解釈を行わず、その意味の解釈を find コマンドに任せるようシェルに指示します。コマンド ラインでは括弧を直接使用できないため、バックスラッシュ '/' を使用してエスケープする必要があります (つまり、エスケープ文字 '/' を使用すると、コマンド ラインで括弧が認識されます)。また、「/(」、「/)」には両側にスペースが必要であることに注意してください。
6. dir0、dir1、およびサブディレクトリで txt サフィックス ファイルを検索します
find ./ /( -path './dir0*' -o -path './dir1*' /) -a -name *.txt -print
+1. dir_general という名前のすべてのディレクトリで txt サフィックス ファイルを検索します
find ./ -path '*/dir_general/*' -name *.txt -print
以上がLinuxでのfindコマンドの使い方を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。