我试图通过某个目录中的掩码获取所有文件,而不在子目录中递归搜索。-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/*,因此我可以将其用于我的案例。
你会想要:
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)
要查找调用的常规文件filemask,dir而无需在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 查找限制到特定深度?