두 find 명령의 xargs 출력 설명

두 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의 매개변수로 파이프되고 출력되어서는 안 된다고 생각했습니다. 출력의 첫 번째 부분은 어디에서 나오나요?

답변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

관련 정보