각 하위 디렉터리의 크기를 요약하는 du(디스크 사용량) 명령 플래그가 있습니까?

각 하위 디렉터리의 크기를 요약하는 du(디스크 사용량) 명령 플래그가 있습니까?

나는 다음과 같은 디렉토리 구조를 가지고 있습니다 (예) -

main
|--src
    |--com
        |- company
    |--org
        |- apache
|--resources
    |--abc
|--etc

이 디렉토리 아래의 각 하위 디렉토리에서 사용하는 디스크 공간이 필요합니다 main. 그러면 출력은 다음과 같습니다.

user@main> du -{command_switches}
1M  src
20M resources
3M  etc

sh, Sh, ash, aSH 등 여러 가지 사용 가능한 스위치를 시도했지만 원하는 결과를 얻을 수 없었습니다.

답변1

일부 du구현에서는 -d디스크 사용량이 표시되는 깊이 대신 디스크 사용량이 표시되는 깊이를 제한하기 위해 1을 지원합니다.회계)이므로 du -hd 1 .현재 디렉터리에 적용되어야 합니다.

이식 가능한 경우 언제든지 다음을 수행할 수 있습니다.

find . ! -name . -prune -type d -exec du -s {} +

-h(구현에서 지원하는 경우 du추가 )

그러나 현재 디렉터리에 디렉터리가 많으면 find호출을 여러 번 실행하게 될 수 있으며, du이는 일부 하드 링크가 여러 번 평가된다는 의미일 수 있습니다. du또한 일부 구현에서는 다른 매개변수를 순회하는 동안 하드 링크가 발견되는 경우 하드 링크가 여러 번 계산되는 것을 방지하지 않습니다.


1. 이전 버전의 GNU의 경우 로 변경 du해야 할 수도 있습니다 --max-depth. -dFreeBSD와의 호환성을 위해 coreutils 8.8에만 동등한 짧은 옵션이 추가되었습니다.

답변2

당신은 알고 싶을 수도 있습니다

$ du --max-depth=1 -h

이 게시물의 내용을 알고 있지만 duBaobab 또는 k4dirstat와 같이 이러한 종류의 정보를 보다 효율적으로 표시할 수 있는 그래픽 응용 프로그램을 살펴보는 것도 좋습니다.

답변3

네가 원하는 걸 내가 놓쳤을지도 모르지만, 내 생각에는

du -sh *

당신이 원하는 것. 여기서 중요합니다 *. 다음 을 사용하여 -s각 디렉토리의 요약을 얻을 수 있습니다.명령줄에서, 따라서 명시적 디렉터리(암시적 디렉터리 .)가 없으면 최상위 수준 아래의 각 디렉터리에 대한 요약이 개별적으로 표시되는 것이 아니라 모든 내용에 대한 요약만 표시됩니다.

관련 정보