我的目錄結構為
- 資料夾1
- 資料夾2
- 資料夾2a
- 資料夾2b
- 資料夾3
- 資料夾3a
- 資料夾3b
- 資料夾2
我對以下命令的 xargs 輸出感到困惑:
XXXXXX:folder1 user$ find . -type d -maxdepth 1 | xargs -I{} find {} -type d -maxdepth 1 | xargs -I{} echo {}
.
./folder2
./folder3
./folder2
./folder2/folder2b
./folder2/folder2a
./folder3
./folder3/folder3a
./folder3/folder3b
我正期待著
./folder2
./folder2/folder2b
./folder2/folder2a
./folder3
./folder3/folder3a
./folder3/folder3b
下面的開始輸出是第一個 find 指令的輸出嗎?
.
./folder2
./folder3
我認為第一個 find 命令的輸出會作為參數傳遞給第二個 find 命令,不應該輸出。輸出的第一部分來自哪裡?
答案1
find . -type d -maxdepth 1
將.
在其輸出(當前目錄)中包含,因為它是一個目錄,且深度find
小於.
1 xargs
。您可能-mindepth 1
還需要第一個命令:
$ find . -maxdepth 1 -mindepth 1 -type d | xargs -I{} find {} -type d -maxdepth 1 | xargs -I{} echo {}
./folder2
./folder2/folder2b
./folder2/folder2a
./folder3
./folder3/folder3a
./folder3/folder3b