여러 .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 }'