1. ホーム
  2. linux

[解決済み] find .コマンドでディレクトリを除外する方法

2022-03-19 08:18:53

質問

を実行しようとしています。 find コマンドですべての JavaScript ファイルを処理することができますが、特定のディレクトリを除外するにはどうすればよいですか?

以下は find のコードを使っています。

for file in $(find . -name '*.js')
do 
  java -jar config/yuicompressor-2.4.2.jar --type js $file -o $file
done

解決方法は?

を使用します。 -prune のプライマリです。例えば ./misc :

find . -path ./misc -prune -o -name '*.txt' -print

複数のディレクトリを除外するには、括弧で囲んで OR します。

find . -type d \( -path ./dir1 -o -path ./dir2 -o -path ./dir3 \) -prune -o -name '*.txt' -print

また、特定の名前のディレクトリを任意のレベルで除外する場合は -name の代わりにプライマリ -path .

find . -type d -name node_modules -prune -o -name '*.json' -print