이 명령을 사용하여 원하는 폴더를 찾고 크기를 계산합니다.
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 -
이는 (최근?) find
및 의 GNU 버전을 가정합니다 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보다 훨씬 쉽고 빠릅니다. (디렉터리를 탐색할 수 있어 시간이 많이 절약됩니다).