Bash
解釋兩個 find 命令的 xargs 輸出
我有一個目錄結構
文件夾1
文件夾2
- 文件夾2a
- 文件夾2b
文件夾3
- 文件夾3a
- 文件夾3b
我對以下命令的 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 並且不應該輸出。輸出的第一部分來自哪裡?
find . -type d -maxdepth 1
將.
在其輸出(目前目錄)中,因為它是一個目錄,並且它的深度小於 1。因此您將再次通過執行find
,這就是您獲得額外輸出的方式。您可能還想要第一個命令:.``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