디렉토리의 특정 파일에서만 소비되는 디스크 공간을 재귀적으로 계산하는 방법은 무엇입니까?
답변1
find -iname '*.jpg' -print0 | du --files0-from=- -h -c | tail -1
-iname
검색은 대소문자를 구분하지 않습니다.-print0
NUL
개행 대신 쓰기--files0-from=-
NUL
개행 대신 읽기, 매개변수stdin
대신 매개변수 에서 읽기-h
결과를 사람이 읽을 수 있는 형식으로 출력합니다(예:1K
대신1024
).-c
출력 합계(예:23G
)tail -1
개별 파일 크기를 억제하고 총계만 출력합니다.
답변2
그리고 zsh
:
zmodload zsh/stat
stat -LA blocks +blocks -- **/*.jpg(NDoN)
print $(( (${(j[+])blocks} + 0) * 512 ))
.jpg
한정자가 있는 숨겨진 파일을 포함하여 이름이 로 끝나는 모든 파일 D
의 누적 디스크 사용량이 인쇄됩니다. 동일한 파일에 대한 하드 링크가 여러 개 있는 경우 디스크 사용량이 여러 번 계산됩니다(이는 du
대부분의 구현과 다릅니다).
일부 파일이 또는 유형인 경우목차는 디렉토리 파일 자체에 대한 디스크 사용량만 계산하고 해당 디렉토리를 탐색할 때 찾을 수 있는 파일은 계산하지 않습니다( 와의 또 다른 차이점 du
).