두 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보다 작으므로 출력(현재 디렉터리)에 포함됩니다 . 따라서 findvia를 다시 실행하면 .추가 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

관련 정보