디렉토리의 크기를 아는 방법? 하위 디렉토리 및 파일 포함.
du -s directory_name
또는 사람이 읽을 수있는 출력을 얻으려면 :
du -sh directory_name
-s
옵션은 각 하위 디렉토리의 크기를 나열하지 않고 총 크기 만 나열 함을 의미합니다.
Ncdu와 같은 별도의 패키지를 사용하는 것이 효과적 일 수 있지만, 크기를 조정할 폴더 목록을 제공하면 어느 정도 많은 폴더를 동일하게 비교할 수 있습니다. 예를 들어 시스템의 최상위 디렉토리를 비교하려면 ...
cd /
Sudo du -sh ./*
du -csh
-c는 총계를 생성합니다
시험
du -hax --max-depth=1 / | grep '[0-9]G' | sort -nr
이것은 큰 디렉토리를 찾은 다음 du -sh ./*
Awk Velour library 에서 "file-size.sh"를 사용할 수 있습니다.
ls -ARgo "[email protected]" | awk '{q += $3} END {print q}'
항상 "ncdu"패키지를 설치하고 모든 디렉토리의 모든 출력을 그래픽으로 표시합니다. 이는 단일 디렉토리의 합계에 관계없이 일반적으로 내 컴퓨터에서 가장 많은 디스크 공간을 차지하는 것을 알아야하기 때문입니다.
사용법 : Sudo ncdu /
(읽기 권한이있는 폴더에는 Sudo
이 필요하지 않습니다).
전체 파일 시스템에서 디스크 사용량 통계를 스캔하는 데 시간이 걸립니다. 멋진 명령 줄 그래픽 표현이 있으며 스캔 한 경로에서 더 깊거나 높아지는 것과 같은 화살표 키를 사용한 키보드 탐색 기능이 포함되어 있습니다. 를 눌러 항목을 삭제할 수도 있습니다 D.
du -hd1
모든 디렉토리의 크기를 사람이 읽을 수있는 형식으로 나열합니다 (예 :.
656K ./rubberband
2.2M ./lame
652K ./pkg-config
이미 최고의 답변이 제공되었으므로 아래 명령으로 시도했습니다.
Sudo find . -maxdepth 1 -exec du -shk {} \;| awk 'NR >1'| awk 'BEGIN{sum=1}{sum=sum+$1}END{print sum}'
산출
Sudo find . -maxdepth 1 -exec du -shk {} \;| awk 'NR >1'| awk 'BEGIN{sum=1}{sum=sum+$1}END{print sum}'
679445
원래 질문은 크기를 물었지만 디스크의 크기인지 또는 실제 데이터 크기인지는 지정하지 않았습니다.
'du'의 계산은 동일한 파일 시스템을 사용하여 동일한 크기의 파티션을 가진 서버마다 다를 수 있음을 발견했습니다. 파일 시스템 특성이 다르면 이치에 맞지만 그 이유는 알 수 없습니다. Steven Penny가 제공 한 'ls | awk'답변은보다 일관된 답변을 제공하지만 여전히 매우 큰 파일 목록으로 일관성없는 결과를 얻었습니다.
'find'를 사용하면 XFS를 사용하는 서버와 EXT4를 사용하는 서버를 비교할 때도 300,000 개 이상의 파일에 대해 일관된 결과를 얻을 수 있습니다. 따라서 모든 파일의 총 데이터 바이트를 알고 싶다면이 방법을 사용하는 것이 좋습니다.
find /whatever/path -type f -printf "%s\n"|awk '{q+=$1} END {print q}'
ls -ldh를 사용할 수도 있습니다.
ls -ldh /etc drwxr-xr-x 145 root root 12K 2012-06-02 11:44 /etc
-l은 긴 목록입니다. -d는 dir의 내용이 아닌 dir 정보를 표시하기위한 것이고, -h는 huma를 읽을 수있는 형식으로 크기를 표시하기위한 것입니다.