패턴(예: *.JPG)으로 필터링된 디스크 사용량을 계산하는 방법은 무엇입니까?

패턴(예: *.JPG)으로 필터링된 디스크 사용량을 계산하는 방법은 무엇입니까?

디렉토리의 특정 파일에서만 소비되는 디스크 공간을 재귀적으로 계산하는 방법은 무엇입니까?

답변1

find -iname '*.jpg' -print0 | du --files0-from=- -h -c | tail -1

  1. -iname검색은 대소문자를 구분하지 않습니다.
  2. -print0NUL개행 대신 쓰기
  3. --files0-from=-NUL개행 대신 읽기, 매개변수 stdin대신 매개변수 에서 읽기
  4. -h결과를 사람이 읽을 수 있는 형식으로 출력합니다(예: 1K대신 1024).
  5. -c출력 합계(예: 23G)
  6. tail -1개별 파일 크기를 억제하고 총계만 출력합니다.

답변2

그리고 zsh:

zmodload zsh/stat

stat -LA blocks +blocks -- **/*.jpg(NDoN)
print $(( (${(j[+])blocks} + 0) * 512 ))

.jpg한정자가 있는 숨겨진 파일을 포함하여 이름이 로 끝나는 모든 파일 D의 누적 디스크 사용량이 인쇄됩니다. 동일한 파일에 대한 하드 링크가 여러 개 있는 경우 디스크 사용량이 여러 번 계산됩니다(이는 du대부분의 구현과 다릅니다).

일부 파일이 또는 유형인 경우목차는 디렉토리 파일 자체에 대한 디스크 사용량만 계산하고 해당 디렉토리를 탐색할 때 찾을 수 있는 파일은 계산하지 않습니다( 와의 또 다른 차이점 du).

관련 정보