Find
在 AIX 中查找的等效 maxdepth
我試圖通過遮罩在某個目錄中獲取所有文件,而無需在子目錄中遞歸搜尋。AIX 中沒有此選項
-maxdepth 0
。我聽說過
-prune
,但仍然不知道它是如何工作的。我想命令應該看起來像
find dir \( ! -name dir -prune -type f \) -a -name filemask
但它不起作用。
您能否為我寫一個正確的命令並解釋它是如何工作的?
UPD
似乎命令
find dir ! -path dir -prune
列印 中的所有文件和目錄
dir
,但不列印 中的文件和目錄dir/*
,因此我可以將它用於我的案例。
你會想要:
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
將匹配 ondir
,但不匹配dir/dir
(因此dir
將是唯一不會修剪的目錄)。-path
但在舊版本的 AIX 中可能不可用。更一般地說,對於 GNU’s 的標準等效項
-maxdepth n
,請參閱Limit POSIX find to specific depth?