![디렉토리 목록의 디렉토리 수 계산](https://linux55.com/image/178766/%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC%20%EB%AA%A9%EB%A1%9D%EC%9D%98%20%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC%20%EC%88%98%20%EA%B3%84%EC%82%B0.png)
나는 많은 수의 디렉토리를 가지고 있으며 bash 명령을 사용하여 각 디렉토리의 디렉토리 수를 계산하고 싶습니다. 나는 내가 원하는 것을 ls
이루는데 어려움을 겪는다 .wc
예를 들어, 다음과 같은 폴더 구조가 있는 경우(리프 폴더에 더 많은 하위 폴더가 포함될 수 있음):
.
├── folder1
│ └── subfoldera
├── folder2
│ ├── subfoldera
│ └── subfolderb
├── folder3
│ ├── subfoldera
│ ├── subfolderb
│ └── subfolderc
└── folder4
├── subfoldera
├── subfolderb
└── subfolderc
그럼 난 카운트를 갖고 싶어
1
2
3
3
등.
답변1
Bash 및 배열 사용:
dirs=(*/) # get all directories with globbing
# in current directory
for d in "${dirs[@]}"; do
sub=("$d"*/) # get all subdirs in $d
echo "${#sub[@]}" # print number of array elements/subdirs
done
산출:
1 2 삼 삼
한 줄로:
dirs=(*/); for d in "${dirs[@]}"; do sub=("$d"*/); echo "${#sub[@]}"; done
답변2
디렉토리 이름에 '\n'이 포함되어 있지 않으면 이 방법이 작동합니다.
parallel 'ls -d {}/*/ | wc -l' ::: */
출력에 디렉터리를 포함하려면 다음을 수행하세요.
parallel --tag 'ls -d {}/*/ | wc -l' ::: */