この質問によると:検索からディレクトリを除外する方法、コマンドは次のようになります。
find . -type d \( -path dir1 -o -path dir2 -o -path dir3 \) -prune -o -print
しかし、私がそうするなら
find . -type d \( -path "./.cpan" -o -path "./.mozilla" -o "./.cache" \) -prune -o -print
これは以下を提供します:
find: paths must precede expression: ./.cache'
find: possible unquoted pattern after predicate -o'?
しかし、私は提案をしました。
そして、-path
オプションの後のパスは絶対パスにするべきですか、それとも相対パスにするべきですか?現在のディレクトリが含まれているので./[somefile]
これが必要ですか-path
?
ベストアンサー1
-path
最後のオプション値の前に述語を見逃しました。"./.cache"
使用されるパスは、-path
使用している最上位の検索パスで始まる必要がありますfind
。例えば
find . -path './something/here'
find /etc -path '/etc/init.d'
*
ファイルシステムツリーで場所を指定せずにディレクトリ名を一致させるには、ワイルドカードを使用する必要があります。この例は、-type f
ディレクトリ()内のすべてのファイルと一致します。wizard
find . -path '*/wizard/* -type f -print