クエリからディレクトリを正しく除外する方法は?

クエリからディレクトリを正しく除外する方法は?

この質問によると:検索からディレクトリを除外する方法、コマンドは次のようになります。

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

おすすめ記事