我试图通过掩码获取某个目录中的所有文件,而无需在子目录中递归搜索。-maxdepth 0
AIX 中没有这样的选项。
我听说过-prune
,但仍然不明白它是如何工作的。
我想该命令应该类似于
find dir \( ! -name dir -prune -type f \) -a -name filemask
但它不起作用。
您能为我写一个正确的命令并解释它是如何工作的吗?
UPD
看来是命令
find dir ! -path dir -prune
打印 中的所有文件和目录dir
,但不打印 中的文件和目录dir/*
,因此我可以将其用于我的情况。
答案1
你想要:
find dir/. ! -name . -prune -type f -name filemask
或者:
find dir ! -path dir -prune -type f -name filemask
filemask
要查找调用的常规文件,dir
而无需在dir
.
对于find dir ! -name dir -prune
,如果有dir/dir
目录,您就会遇到问题。
该dir/.
方法可以解决这个问题,因为除了作为参数传递的文件之外,find
不会遇到任何其他被调用的文件。.
dir/.
该-path
方法通过查看文件的文件路径(而不是仅名称)来解决这个问题,-path dir
将匹配dir
,但不匹配dir/dir
(因此dir
将是唯一不会修剪的目录)。-path
但在旧版本的 AIX 中可能不可用。
更一般地说,对于 GNU 的标准等效项-maxdepth n
,请参见将 POSIX 查找限制到特定深度?
答案2
在 AIX 中,您可以使用-prune
选项。
find ./* -prune