如何找到匹配后,如何停止查找目录树?

时间:2017-07-26 22:03:57

标签: perl find

这是&#34的变体;如何在找到第一个结果后停止搜索?"这是我今天早些时候发布的,但又不同以保证一个新问题(IMO)。它涉及find命令,如果发现不能做我需要的话,它可能是一个perl soln。

使用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"的其他实例。

此外,我希望它一旦遇到" out"的实例就停止搜索(浪费时间)在路上。

我将在perl中运行它,所以我想我可以发挥创意并编写一些递归函数来执行此操作。所以我也会用" perl"应该是最终的解决方案。

1 个答案:

答案 0 :(得分:3)

使用-prune操作:

find top -name out -print -prune

此操作会阻止find递归到目录。