【发布时间】:2012-09-10 23:36:36
【问题描述】:
这是 RHEL 5.6 和 GNU 找到 4.2.27。
我正在尝试从查找中排除一个目录,并希望确保该目录没有下降到。我已经看到很多帖子说 -prune 会这样做 - 确实如此。我可以运行这个命令:
find . -type d -name "./.snapshot*" -prune -o -print
它有效。我通过 strace 运行它并验证它没有下降到 .snapshot。
我还想仅在某个级别查找目录。我可以使用 mindepth 和 maxdepth 来做到这一点:
find . -maxdepth 8 -mindepth 8 -type d
它为我提供了 8 级以下的所有目录,包括 .snapshot 中的内容。
如果我结合 prune 和 mindepth 和 maxdepth 选项:
find . -maxdepth 8 -mindepth 8 -type d \( -path "./.snapshot/*" -prune -o -print \)
输出是正确的 - 除了 .snapshot 中的内容之外,我看到所有 dirs 都下降了 8 级,但是如果我通过 strace 运行该查找,我看到 .snapshot 仍在下降到 1 到 8 级。
我尝试了各种不同的组合,移动优先括号,重新排列表达式组件 - 产生正确输出的所有内容仍然下降到 .snapshot。
我在手册页中看到 -prune 不适用于 -depth,但没有说明 mindepth 和 maxdepth。
谁能给点建议?
谢谢... 比尔
【问题讨论】: