検索が見つかったディレクトリに移動するのをどのように防ぐことができますか?

検索が見つかったディレクトリに移動するのをどのように防ぐことができますか?

その中に含まれているファイルを再検索できるように、特定の文字列を含むすべてのディレクトリを探したいと思います。

./my-search-term/dir/my-search-termだから私はそのようなことに時間を無駄にしたくありません。

最初のmy-search-termディレクトリを探すときに再帰をどのように停止しますか?

ベストアンサー1

タスク-prunefindディレクトリとして繰り返されません。たとえば、他のタスクと組み合わせることができます(-execどちらも実行される限り、順序は重要ではありません)。-prune-exec-prune

find . -name my-search-term -prune -exec find {} … \;

finda 内部に入れ子にするのはfind -exec少し問題になることがあります。ターミネータはexternalによってターミネータとして扱われるため、-exec内部では使用できません。この問題はシェルを呼び出すことで解決できますが、引用するときは注意してください。findfind

find . -name my-search-term -prune -exec sh -c '
    find "$@" … -exec … {\} +
' _ {} +

おすすめ記事