디렉토리의 일부 파일에서만 사용되는 디스크 공간을 반복적으로 계산하려면 어떻게 해야 합니까?
답변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
).