2017-07-26 3 views
-1

これは「最初の結果が見つかった後に検索から検索を停止するにはどうすればよいですか?今日私は以前に投稿しましたが、新しい質問(IMO)を保証するのに十分なものです。 findが私の必要とすることができない場合は、findコマンドのantが必要になります。どのようにして一致が見つかると、検索ツリーから検索を停止できますか?

findを使用すると、名前が「out」のディレクトリのすべてのインスタンスに対してディレクトリツリーを検索する必要があります。 "out"のインスタンスが見つかると、そのディレクトリの下で検索を停止し、 "out"の他のパスを検索し続けます。

この例を考えてみましょう...

mkdir -p top/a/b/out/c/d/out/e/leaf 
mkdir -p top/a/bb/cc/out/dd/ee/out/ff/gg/out/hh/leaf 

私は...

top/a/b/out 
top/a/bb/cc/out 

を見つけたいん...しかし、 "アウト" の他のインスタンス。

また、パス内で "out"のインスタンスにヒットしたら、検索をやめて(時間を無駄にしない)

私はこれをperlで動かすつもりです。だから私は創造的になり、これを行うための再帰的なfuncを書くことができると思います。そして、私はまた、 "perl"で質問にこれをタグ付けし、最終的な解決策にしてください。

+0

「find」はあなたを参照していますか? – ikegami

答えて

3

-pruneアクションを使用します

find top -name out -print -prune 

をこのアクションは、ディレクトリに再帰からfindを防ぐことができます。

+0

優秀!ありがとうDuskwuff – daveg

関連する問題