SW/리눅스

Linux : 디렉토리 사이즈 얻는 방법, 예제, 명령어

얇은생각 2021. 7. 22. 07:30
반응형

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

디렉터리의 실제 크기를 가져오는 데 사용할 명령은 du입니다. du "디스크 사용량"의 약자입니다.

 

 

Linux : 디렉토리 사이즈 얻는 방법, 예제, 명령어

 

 

디렉토리 크기 얻기

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

옵션 없이 호출되면 du는 지정된 디렉터리의 디스크 사용량과 각 하위 디렉터리를 바이트로 표시합니다.

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

sudo du -sh /var

# 85G	/var

 

 

 

명령과 해당 인수에 대해 설명하겠습니다.

/var 디렉토리 내의 대부분의 파일 및 디렉터리는 루트 사용자가 소유하며 일반 사용자가 읽을 수 없기 때문에 명령은 sudo로 시작합니다. sudo를 생략하면 du 명령은 "du: cannot read directory"를 출력합니다.

s - 지정된 디렉토리의 전체 크기만 표시하고 하위 디렉토리에 대한 파일 크기 합계는 표시하지 않습니다.

h - 사람이 읽을 수 있는 형식(h)으로 크기를 출력합니다.

/var - 크기를 가져올 디렉토리의 경로입니다.

 

첫 번째 수준의 하위 디렉터리의 디스크 사용량을 표시하려면 어떻게 합니까? 두 가지 옵션이 있습니다. 첫 번째는 아래와 같이 별표 기호(*)를 사용하는 것인데, 이는 "주기(.)로 시작하지 않는 모든 것과 일치"를 의미합니다. -c 옵션은 모든 크기의 전체 인쇄 시점을 알려줍니다.

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개의 디렉토리를 인쇄하려면, sort 명령으로 인해 의 출력을 파이핑하여 디렉터리를 크기별로 정렬한 다음 출력을 상위 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

 

반응형