내 하드 드라이브에서 특정 유형의 파일이 차지하는 전체 크기를 어떻게 알 수 있나요?

내 하드 드라이브에서 특정 유형의 파일이 차지하는 전체 크기를 어떻게 알 수 있나요?

.jpg 파일의 저장 공간이 얼마나 되는지 알려주는 명령(예:)이 있는지 궁금합니다. 마찬가지로 find / -iname "*.jpg"찾은 각 파일의 크기를 추가하고 전체를 출력합니다.

답변1

find ./path/to/your/drive -type f -name '*.jpg' -exec du -ch {} +

또는 더 빠르게

find /path/to/your/drive -name "*.jpg" -print0 | du -ch --files0-from=-

아니면 간단히 말해서,

du -ch /path/to/your/drive/*.jpg | grep total

awk아니면 다음의 도움으로

find /path/to/your/drive -iname "*.jpg" -ls | awk '{total += $7} END {print total}'

내 시스템에서는 파일 크기가 일곱 번째 필드에 표시됩니다. 상황이 다른 경우 그에 따라 조정하십시오.

댓글에서 OP의 요청에 따라 디렉터리의 모든 이미지와 전체 크기를 찾으려면 이 명령을 사용할 수 있습니다(@Stéphane Chazelas가 제안함).

 find . -type f -exec file --mime-type {} + | sed -n 's|: image/[^[:blank:]]*$||p' | tr '\n' '\0' | du --files0-from=- -hc

또는

 du -shc $(find . -name '*' -exec file {} \; | grep -o -P '^.+: \w+ image' | cut -d':' -f1) | grep total

답변2

대안으로 POSIX를 사용하여 다음을 수행할 수 있습니다.

find . -type f -name "*.jpg" -exec du -sk {} \; |
  awk 'BEGIN{total=0};{total += $1}; END{printf "%.3f MB\n", total / 1024}'

추가 자료:

관련 정보