총 디렉터리 크기

총 디렉터리 크기

여러 .NET 프로젝트가 포함된 폴더가 있습니다. 이를 상위 디렉터리라고 부르겠습니다 projects. 모든 .NET 프로젝트에는 bin해당 프로젝트용으로 빌드된 바이너리가 포함된 폴더가 있습니다. 이제 이 모든 폴더의 파일 크기 합계를 얻고 싶습니다.

지금까지 bin각 디렉토리의 목록을 얻을 수 있습니다

du -h | grep 'bin$'

이는 각 디렉토리의 크기 bin와 해당 디렉토리의 경로를 제공합니다.

이것을 어떻게 요약합니까? 그냥 사용해도 될까요? du아니면 다른 도구로 파이프되어야 합니까?

답변1

-h디렉토리 크기에 따라 단위가 달라지므로 사용하지 않는 것이 좋습니다 . 을 사용하면 -b크기가 바이트 단위로 제공되고 이를 필요한 대로 변환할 수 있습니다. 이것은 Linux입니다. 옵션이 있습니다.

du -b | awk '/bin$/{print $1'} | paste -sd+ - | bc

du -b | awk '/bin$/{Total=Total+$1} END {print "Total "Total" bytes"}'

답변2

( -s)를 사용하여 각 디렉터리의 요약 값을 얻을 수 있으며(하위 디렉터리를 인쇄하지 않고) ( -c)를 사용하여 총계를 얻을 수 있습니다. 항목이 너무 많지 않은 경우 각 디렉터리를 매개변수로 전달합니다. 예를 들면 다음과 같습니다.

$ du -hsc projects/projectone/bin projects/projecttwo/bin
30M projects/projectone/bin
2.0M    projects/projecttwo/bin
32M total

구조가 다른 디렉토리가 많은 경우 find및 다음을 사용하십시오 du.

$ find projects -type d -name bin -exec du -hsc {} +

총 값만 원하는 경우 명령을 파이프하여 awk마지막 줄의 첫 번째 필드를 인쇄합니다.

... | awk 'END{ print $1 }'

관련 정보