2017-07-26 73 views
-1

这是“如何在找到第一个结果后停止从搜索中查找?”的变体我今天早些时候发布的,但不同的是需要一个新的问题(IMO)。它涉及find命令蚂蚁可能是一个perl索恩如果找不到我需要的东西。一旦找到匹配项,我该如何停止搜索目录树?

使用find,我想搜索一个dir树,查找所有名称为“out”的dirs实例。一旦找到“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中运行这个,所以我想我可以创造性地写一些递归函数来做到这一点。所以我也会用“perl”来标记这个问题,如果这是最终的解决方案。递归到一个目录

find top -name out -print -prune 

这种行为防止find

+0

你指的是哪个'find'? – ikegami

回答

3

使用-prune行动。

+0

优秀!谢谢Duskwuff – daveg

相关问题