나는 다음과 같은 디렉토리 구조를 가지고 있습니다.
- 폴더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
.
디렉토리이고 깊이가 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