findコマンドからディレクトリを除外できますか? [コピー]

findコマンドからディレクトリを除外できますか? [コピー]

find -type f特定の起動ディレクトリですべてのファイルを再帰的に検索するコマンドを使用しています。しかし、特定のディレクトリを入力してその中のファイル名を抽出するのを防ぎたいと思います。だから基本的に次のようなものを探しています。

find . -type f ! -name "avoid_this_directory_please"

有効な選択肢はありますか?

ベストアンサー1

このオプションの目的は次のとおりです-prune

find . -type d -name 'avoid_this_directory_please' -prune -o \
    -type f -print

上記を「という名前のディレクトリがある場合はavoid_this_directory_please入力しないでください。そうでない場合は、通常のファイルであればそのパス名を印刷してください」と解釈できます。

最上位検索パスのフルパス名など、他の基準に基づいてディレクトリをクリーンアップすることもできます。

find . -type d -path './some/dir/avoid_this_directory_please' -prune -o \
    -type f -print

おすすめ記事