파일과 디렉터리 용량을 알려주는 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