在 AIX 中查找的等效 maxdepth

Vik*_*ora 7 find aix

我试图通过某个目录中的掩码获取所有文件,而不在子目录中递归搜索。-maxdepth 0AIX 中没有这方面的选项。

我听说过-prune,但仍然无法理解它是如何工作的。

我想命令应该看起来像

find dir \( ! -name dir -prune -type f \) -a -name filemask
Run Code Online (Sandbox Code Playgroud)

但它不起作用。

你能否为我写一个正确的命令并解释它是如何工作的?

UPD

似乎是命令

find dir ! -path dir -prune
Run Code Online (Sandbox Code Playgroud)

打印 中的所有文件和目录dir,但不打印 中的文件和目录dir/*,因此我可以将其用于我的案例。

Sté*_*las 9

你会想要:

find dir/. ! -name . -prune -type f -name filemask
Run Code Online (Sandbox Code Playgroud)

或者:

find dir ! -path dir -prune -type f -name filemask
Run Code Online (Sandbox Code Playgroud)

要查找调用的常规文件filemaskdir而无需在dir.

使用find dir ! -name dir -prune,如果有dir/dir目录,您就会遇到问题。

dir/.方法可以解决这个问题,因为find不会遇到.dir/.作为参数传递的文件之外的任何其他文件。

-path方法通过查看文件的文件路径(而不仅仅是名称)来解决它,-path dir将匹配 on dir,但不匹配on dir/dir(因此dir将是它不会修剪的唯一目录)。-path但是在旧版本的 AIX 中可能不可用。

更一般地说,对于 GNU 的标准等价物-maxdepth n,请参阅将 POSIX 查找限制到特定深度?

  • 确认 Stéphane 的 [上面的评论](https://unix.stackexchange.com/questions/372994/equivalent-maxdepth-for-find-in-aix#comment663370_373001) 在 AIX 6.1 和 7.1 中的 `find` 都支持 `-path`并且它们都没有记录在相应的手册页中。 (2认同)