이 명령을 사용하여 필요한 폴더를 찾고 크기를 계산합니다.
find . -type d -name 'tmp_c*' | xargs du -hcs {} \; +
내 버전의 find는 -exec를 지원하지 않습니다. 그러나 이것은 작동할 수 있습니다. 하지만 내 검색 문자열이 포함된 디렉토리의 총 개수가 정확한지 확실하지 않습니다. 명령어를 실행하고 less에 연결하면 각 폴더의 크기를 계산한 후 수시로 합계를 출력하는 것을 볼 수 있습니다. 이와 같이:
140K ./r/g/userid/attach/tmp_c_241091464_2
68K ./r/g/userid/attach/tmp_c_58367014_undefined
2.3G total
출력을 파일로 리디렉션한 다음 총계를 grep하면 다음과 같은 결과를 얻습니다.
2.3G total
978M total
1.1G total
2.0G total
1.1G total
나생각하다이것은 나에게 정확한 번호를 제공합니다. 하지만 이 명령을 한 단계 더 발전시켜 전체 내용을 한 줄에 요약하려면 어떻게 해야 할까요?
답변1
find . -type d -name 'tmp_c*' -print0 | du -hcs --files0-from -
이는 (충분히 새로운?) GNU 버전 find
의 du
.
답변2
이것은 작동해야 하며 내 EL4 상자에서 테스트되었습니다... 이것은 내가 소유한 가장 오래된 상자이고 나를 움츠리게 만듭니다. EL3를 어떻게 사용하는지 모르겠습니다.
find . -type d -name 'tmp_c*' -print0|xargs -0 du -c|tail -1
완성된coreutils-4.5.3-26
답변3
https://stackoverflow.com/a/1323769/799204
대체 솔루션은 awk를 사용하는 것입니다.
하지만 이 경우에는 스크립트를 조정해야 합니다.
find . -type d -name 'tmp_c*' -print0 | xargs -0 du -s | awk 'BEGIN { sum=0 } { sum+=$1 } END { print sum }'
출력은 10진수 형식으로 표시됩니다.
답변4
epel이 3이 아닌 5부터 시작하는지 확인했으므로 유일한 옵션은 사용자 정의 스크립트입니다.
ncdu를 설치할 수도 있습니다.
나는 항상 그것을 사용하고 있으며 어떤 맞춤형 bash보다 쉽고 빠릅니다. (카탈로그를 찾아보고 많은 시간을 절약할 수 있습니다).