기계적 인조 인간

리눅스에서 디렉토리의 크기를 얻는 방법

아폴론 징글벨락

아폴론 징글벨락

차례:

Anonim

ls 명령을 사용하여 디렉토리의 내용을 나열 할 때 디렉토리의 크기가 거의 항상 4096 바이트 (4KB)임을 알 수 있습니다. 디스크에 포함 된 공간이 아니라 디렉토리의 메타 정보를 저장하는 데 사용되는 디스크 공간의 크기입니다.

디렉토리의 실제 크기를 얻기 위해 사용하려는 명령은 du 이며 "디스크 사용량"의 줄임말입니다.

디렉토리 크기 얻기

du 명령은 지정된 파일 또는 디렉토리가 사용하는 파일 공간의 양을 표시합니다. 지정된 경로가 디렉토리 인 경우 du 는 해당 디렉토리에있는 각 하위 디렉토리의 디스크 사용량을 요약합니다. 경로를 지정하지 않으면 du 는 현재 작업 디렉토리의 디스크 사용량을보고합니다.

옵션없이 호출하면 du 는 지정된 디렉토리 및 각 서브 디렉토리의 디스크 사용량을 바이트 단위로 표시합니다.

일반적으로 디렉토리가 차지하는 공간을 사람이 읽을 수있는 형식으로 표시하려고합니다. 예를 들어, /var 디렉토리의 전체 크기를 얻으려면 다음 명령을 실행하십시오.

sudo du -sh /var

결과는 다음과 같습니다.

85G /var

명령과 그 인수에 대해 설명하겠습니다:

  • /var 디렉토리에있는 대부분의 파일과 디렉토리는 루트 사용자가 소유하고 일반 사용자가 읽을 수 없기 때문에 명령은 sudo 시작합니다. sudo 를 생략하면 du 명령은“du: cannot read directory”를 인쇄합니다. s 지정된 디렉토리의 전체 크기 만 표시하고 서브 디렉토리의 총 파일 크기는 표시하지 않습니다. h 사람이 읽을 수있는 형식 ( h )으로 인쇄 크기. /var 크기를 구하려는 디렉토리의 경로입니다.

첫 번째 수준 하위 디렉터리의 디스크 사용량을 표시하려면 어떻게합니까? 두 가지 옵션이 있습니다. 첫 번째는 아래에 표시된대로 별표 기호 ( * )를 사용하는 것입니다. 이는 "마침표 ( . )로 시작하지 않는 모든 항목과 일치"를 의미합니다. -c 옵션은 du 에게 모든 크기의 총계를 인쇄하도록 지시합니다.

sudo du -shc /var/*

24K /var/db 4.0K /var/empty 4.0K /var/games 77G /var/lib 4.0K /var/local 0 /var/lock 3.3G /var/log 0 /var/mail 4.0K /var/opt 0 /var/run 196K /var/spool 28K /var/tmp 85G total

첫 번째 수준 하위 디렉토리의 디스크 사용량에 대한 보고서를 얻는 또 다른 방법은 --max-depth 옵션을 사용하는 것입니다.

sudo du -h --max-depth=1 /var

77G /var/lib 24K /var/db 4.0K /var/empty 4.0K /var/local 4.0K /var/opt 196K /var/spool 4.0K /var/games 3.3G /var/log 5.0G /var/cache 28K /var/tmp 85G /var 85G total

기본적으로 du 명령은 디렉토리 또는 파일이 사용하는 디스크 공간을 보여줍니다. 디렉토리의 명백한 크기를 찾으려면 --apparent-size 옵션을 사용하십시오. 파일의 "겉보기 크기"는 실제로 파일에있는 데이터의 양입니다.

sudo du -sh --apparent-size /var

SCP, Rsync. 또는 SFTP를 통해 디렉토리를 전송할 때 네트워크를 통해 전송되는 데이터의 양은 파일의 명백한 크기입니다. 따라서 du 표시 될 때 소스에 사용 된 디스크의 공간 크기 ( --apparent-size 없이)가 대상의 크기와 다른 이유입니다.

du 명령은 파이프가있는 다른 명령과 결합 할 수도 있습니다.

예를 들어, /var 디렉토리 내에서 5 개의 가장 큰 디렉토리를 인쇄하려면 du 의 출력을 sort 명령으로 파이프하여 디렉토리를 크기별로 정렬 한 다음 출력을 head 명령으로 파이프하여 상위 5 개의 디렉토리 만 인쇄합니다.:

sudo du -h /var/ | sort -rh | head -5

85G /var/ 77G /var/lib 75G /var/lib/libvirt/images 75G /var/lib/libvirt 5.0G /var/cache/pacman/pkg

결론

Linux에서는 du 명령을 사용하여 디렉토리의 크기를 얻을 수 있습니다.

뒤 터미널 디스크