파일과 디렉터리 용량을 알려주는 linux du 명령어 사용법
du(Disk Usage)는 파일과 디렉터리 용량을 계산하는 유틸리티로 용량을 계산할 디렉터리의 경로를 주고 실행합니다.
$ du /usr/local/ 77936 /usr/local/bin 8 /usr/local/etc 1448 /usr/local/include ... 872 /usr/local/share 1204756 /usr/local/
마지막 줄에는 입력 경로인 /usr/local 의 총 용량이 표시됩니다.
크기 지정
총량 표시
-c, --total 를 사용하면 마지막 줄에 명시적으로 총량을 표시해 줍니다.
$ du -c /usr/local/ 77936 /usr/local/bin 8 /usr/local/etc 1448 /usr/local/include ... 872 /usr/local/share 1204756 /usr/local/ 1204756 total
표시 단위 지정
-b (byte), -k (kil), -m(mega) 옵션을 사용해서 표시할 단위를 지정할 수 있으며 아래는 mega 단위로 표시합니다.
$ du -c -m /usr/local/ 77 /usr/local/bin 1 /usr/local/etc 2 /usr/local/include ... 6 /usr/local/share 1177 /usr/local/ 1177 total
전체 크기만 표시
하위 디렉터리의 크기는 제외하고 총 크기만 알고 싶다면 -s, --summarize 옵션을 사용합니다.
$ du -s /usr/local/ 1204756 /usr/local/
그외 옵션
읽기 좋게 표시
표시 단위 지정 옵션을 사용해도 용량을 표시하는 숫자를 바로 해석하기는 어렵습니다. -h, --human-readable 옵션을 사용하면 읽기 좋게 단위를 같이 표시해 줍니다.
$ du -h /usr/local/ 77M /usr/local/bin 8.0K /usr/local/etc 1.5M /usr/local/include ... 5.8M /usr/local/share 1.2G /usr/local/
-h 와 -s 를 같이 사용하면 총량만 읽기 좋게 표시합니다.
$ du -sh /usr/local/ 1.2G /usr/local/
하위 깊이 제한
기본적으로 du 는 모든 하위 디렉터리의 크기도 같이 계산합니다. 깊이를 제한하려면 -d, --max-depth=n 옵션을 사용하면 됩니다. 다음은 depth 가 0 이므로 du -sh 와 동일한 의미가 됩니다.
--max-depth 와 -s 옵션을 같이 사용할 수는 없습니다.
$ du -h /usr/local/ -d 0 1.2G /usr/local/
$ du -h /usr/local/ --max-depth=0 1.2G /usr/local/
첫 번째 하위 폴더까지만 총량을 구하려면 --max-depth=1 옵션을 사용하면 됩니다.
$ du -h /usr/local/ -d 1 77M /usr/local/bin 8.0K /usr/local/etc 1.5M /usr/local/include 274M /usr/local/lib ... 76M /usr/local/node-v12.13.1-linux-x64 1.2G /usr/local/
디렉터리 크기로 정렬
기본적으로 du 는 하위 폴더명을 기준으로 정렬합니다. 만약 용량을 기존으로 정렬한다면 pipe 로 sort 에게 전달해 주면 됩니다.
$ du -h -d 1 /usr/local/ | sort -n 1.1M /usr/local/sbin 1.2G /usr/local/ 1.5M /usr/local/include 60K /usr/local/libexec ... 274M /usr/local/lib
-h 옵션을 사용할 경우 문자가 포함되므로 위와 같이 제대로 정렬이 되지 않는 문제가 있습니다.
정렬이 필요할 경우 -h 옵션 대신 표시 단위를 지정하는 -b, -k -m 옵션을 사용하면 제대로 정렬이 됩니다.
$ du -m -d 1 /usr/local/ | sort -n 1 /usr/local/libexec 2 /usr/local/include 77 /usr/local/bin ... 1177 /usr/local/
만약 내림 차순 정렬이 필요하다면 sort 에 -r 옵션을 추가해 주면 됩니다.
$ du -m -d 1 /usr/local/ | sort -rn 1177 /usr/local/ ... 77 /usr/local/bin 2 /usr/local/include