나는 다음과 같은 디렉토리 구조를 가지고 있습니다 (예) -
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
. -d
FreeBSD와의 호환성을 위해 coreutils 8.8에만 동등한 짧은 옵션이 추가되었습니다.
답변2
당신은 알고 싶을 수도 있습니다
$ du --max-depth=1 -h
이 게시물의 내용을 알고 있지만 du
Baobab 또는 k4dirstat와 같이 이러한 종류의 정보를 보다 효율적으로 표시할 수 있는 그래픽 응용 프로그램을 살펴보는 것도 좋습니다.
답변3
네가 원하는 걸 내가 놓쳤을지도 모르지만, 내 생각에는
du -sh *
당신이 원하는 것. 여기서 중요합니다 *
. 다음 을 사용하여 -s
각 디렉토리의 요약을 얻을 수 있습니다.명령줄에서, 따라서 명시적 디렉터리(암시적 디렉터리 .
)가 없으면 최상위 수준 아래의 각 디렉터리에 대한 요약이 개별적으로 표시되는 것이 아니라 모든 내용에 대한 요약만 표시됩니다.