使っています find -type f
コマンドを使用して、特定の開始ディレクトリからすべてのファイルを再帰的に検索します。ただし、一部のディレクトリでファイル名の入力および抽出を禁止したいのですが。だから基本的に私は次のようなものを探しています:
find . -type f ! -name "avoid_this_directory_please"
これに代わる機能的な代替品はありますか?
これが-Prune
オプションの目的です。
find . -type d -name "avoid_this_directory_please" -Prune -o -type f -print
これは基本的に「avoid_this_directory_please
という名前のディレクトリがある場合は入力しないでください。そうでない場合は、通常のファイルの場合は、そのパス名を出力してください」とあります。
ディレクトリを回避するには、-pathテストを試してください。
find . -type f ! -path '*/avoid_this_directory_please/*'
man find
の-path
セクションで、他の2つの回答を組み合わせたようです
To ignore a whole directory tree, use -Prune rather than
checking every file in the tree. For example, to skip the directory
`src/emacs' and all files and directories under it, and print the
names of the other files found, do something like this:
find . -path ./src/emacs -Prune -o -print
これを試して
find -name "*.js" -not -path "./directory/*"