linux findコマンドは、1つ以上のサブディレクトリのインスタンスを無視します。
findコマンドを使用してlinuxシステムでファイルを検索する場合、一部のディレクトリを無視する必要がある場合があります。-pruneパラメータを使用してフィルタできます。
ただし、無視するパスパラメータは、検索されたパスに従う必要があります。そうしないと、このパラメータは機能しません。
たとえば、/home/zthディレクトリの下にあるすべてのファイルを検索するように指定しますが、/home/zth/astetcのパスは無視されます。コードのコピー
find /home/zth -path "/home/zth/astetc" -prune -o -type f -print
ファイル名で検索すると、次のようになります。コードのコピー
find /home/zth -path "/home/zth/astetc" -prune -o -type f -name "cdr_*.conf" -print
2つ以上のパスを無視するにはどうすればいいですか?コードのコピー
find /home/zth /( -path "/home/zth/astetc" -o -path "/home/zth/etc" /) -prune -o -type f -print
find /home/zth /( -path "/home/zth/astetc" -o -path "/home/zth/etc" /) -prune -o -type f -name "cdr_*.conf" -print
注意:/(および/)の前後にスペースがあります。ファイルに含まれる内容を検索します。次の文は、ディレクトリにスペースがある問題を解決します。
コードのコピー
find ./ -name "mysql*" -print0 |xargs -0 grep "SELECT lead_id FROM vicidial_list where vendor_lead_code"
コードのコピー