有没有办法阻止find以递归方式挖掘到子目录中?

时间:2008-08-25 22:58:44

标签: bash unix shell ksh

当我这样做时:

$ find / 

搜索整个系统 我该如何预防?

(这个问题来自另一个问题的“answer”。)

5 个答案:

答案 0 :(得分:9)

考虑:

-maxdepth n
             True if the depth of the current file into the tree is less than
             or equal to n.

-mindepth n
             True if the depth of the current file into the tree is greater
             than or equal to n.

答案 1 :(得分:4)

天儿真好,

只是想扩展Jon的建议,使用-prune。它不是最容易使用的查找选项,例如,只需在当前目录中搜索find命令:

find . \( -type d ! -name . -prune \) -o \( <the bit you want to look for> \)

这将阻止find进入此目录中的子目录。

基本上,它说,“修剪任何目录,其名称不是”。“,即当前目录。”

对于在当前目录中找到的每个项目,find命令从左到右逐渐消失,因此在完成第一个元素(即剪枝段)之后,它将继续使用第二个-o中的匹配项目(OR'd)表达

HTH。

欢呼声, 罗布

答案 2 :(得分:3)

使用通配符可能会更好。例如,如果要查找当前目录中的所有ksh脚本:

$ ls *.ksh

答案 3 :(得分:0)

使用 -prune 选项。

答案 4 :(得分:0)

你甚至可以

echo /specific/dir/*.jpg

因为它是扩展通配符的shell。打字

ls *.jpg

相当于输入

ls foo.jpg bar.jpg

给定foo.jpg和bar.jpg是当前目录中以“.jpg”结尾的所有文件。