find
とは思わない このようなオプションがあり、 printf
を使用してコマンドを作成できます および除外リスト:
find /dir -name "*.gz" $(printf "! -name %s " $(cat skip_files))
これは次のことと同じです:
find /dir -name "*.gz" ! -name first_skip ! -name second_skip .... etc
または、 find
からパイプすることもできます grep
に :
find /dir -name "*.gz" | grep -vFf skip_files
これは、結果からいくつかのファイルを削除するために通常行うことです (この場合、すべてのテキスト ファイルを探しましたが、あちこちにある valgrind memcheck レポートの束には興味がありませんでした):
find . -type f -name '*.txt' ! -name '*mem*.txt'
うまくいっているようです。