하위 폴더 내의 파일 수를 계산하고 표시를 정렬합니다.

하위 폴더 내의 파일 수를 계산하고 표시를 정렬합니다.

그래서 나는 다음 스크립트를 가지고 있습니다

find "my-path-here"  -maxdepth 1 -mindepth 1 -type d -exec sh -c 'echo "{} : $(find "{}" -type f | wc -l | sort)" file\(s\)' \;

모든 폴더(깊이=1)에서 파일을 (재귀적으로) 계산합니다.

아래 스크린샷은 /usr에 대해 실행되었으며 보시다시피 폴더는 알파벳순으로 정렬되지 않습니다.

명령을 알파벳순으로 정렬하도록 변경하는 방법에 대한 아이디어가 있습니까?

감사해요

여기에 이미지 설명을 입력하세요.

답변1

한 가지 접근 방식은 GNU를 가정 find하고 파일 이름에 개행 문자가 포함되어 있지 않다고 가정하는 것입니다.

find /some/dir -type f -printf '%P\n' | grep / | cut -d/ -f1 | sort | uniq -c

예제 출력:

 5322 X11R6
  316 bin
   89 lib
 2165 libdata
   50 libexec
19220 local
   10 mdec
  206 sbin
 8970 share

필요한 경우 awk또는 를 사용하여 형식을 지정할 수 있습니다.sed

관련 정보