리눅스 du 명령어 완벽 정리 | 디스크 사용량 분석하기

현업에서 개발환경의 용량이 90프로를 초과해서 컴포넌트들의 저장공간을 비워야했습니다. 혼자서 전체 저장공간을 정리하기란 불가능하기 때문에 담당자에게 용량 정리를 할당해야했습니다. 그러기 위해선 1GB이상의 용량을 차지하고 있는 컴포넌트들 지워야한다는 기준을 세웠고 그 때 사용한 명렁어가 'du'입니다.
이번 글에서는 'du' 명령어의 기본적인 사용법부터 실무에서 유용한 옵션까지 정리해 보겠습니다.
1. du 명령어란?
du(Disk Usage)는 파일 및 디렉토리의 디스크 사용량을 표시하는 리눅스 명령어입니다. 주로 디스크 공간 부족 문제를 해결하거나 대용량 파일을 찾는 데 사용됩니다.
2. 기본 사용법
기본적으로 du 명령어를 실행하면 현재 디렉토리의 모든 하위 디렉토리와 파일의 크기를 출력합니다.
$ du
출력 예시:
4 ./docs
8 ./images
12 .
위 출력에서 .은 현재 디렉토리를 나타내며, 숫자는 해당 디렉토리의 크기를 킬로바이트(KB) 단위로 표시합니다.
3. 자주 사용하는 옵션
3.1. 파일 크기를 사람이 읽기 쉬운 단위로 출력하기 (-h)
$ du -h
출력 예시:
4.0K ./docs
8.0K ./images
12K .
-h 옵션을 사용하면 K(KB), M(MB), G(GB) 단위로 변환되어 가독성이 향상됩니다.
3.2. 디렉토리별 합계만 출력하기 (-s)
$ du -sh
출력 예시:
1.2G .
이 옵션은 현재 디렉토리 전체 크기만 확인하고 싶을 때 유용합니다.
3.3. 하위 디렉토리의 크기 출력 (-c)
$ du -hc
출력 예시:
4.0K ./docs
8.0K ./images
12K .
12K total
-c 옵션을 사용하면 마지막 줄에 총합(total)이 표시됩니다.
3.4. 특정 깊이까지 출력 (--max-depth=N)
$ du -h --max-depth=1
출력 예시:
4.0K ./docs
8.0K ./images
12K .
--max-depth=1 옵션을 사용하면 최상위 디렉토리만 출력하고, 하위 디렉토리는 생략됩니다.
$ du -hd 1
※macOS에서는 -d 옵션을 사용하여 원하는 깊이만큼 디스크 사용량을 확인할 수 있습니다.
3.5. 특정 파일 시스템만 분석 (-x)
$ du -hx /
이 옵션은 다른 파일 시스템을 제외하고 현재 파일 시스템의 디스크 사용량만 계산할 때 사용됩니다.
3.6. 특정 파일 또는 디렉토리 크기 확인
$ du -sh /var/log
출력 예시:
500M /var/log
특정 경로의 크기를 알고 싶을 때 유용합니다.
4. 실무에서 유용한 활용 예제(du, find, watch)
4.1. 디스크 사용량이 많은 상위 5개 디렉토리 찾기
$ du -ah / | sort -rh | head -n 5
이 명령어는 루트(/) 디렉토리에서 크기가 큰 상위 5개 파일 또는 디렉토리를 찾습니다.
4.2. 홈 디렉토리에서 1GB 이상인 파일 찾기
$ find ~/ -type f -size +1G -exec du -sh {} \;
이 명령어를 사용하면 홈 디렉토리에서 1GB 이상인 파일을 찾아 크기를 출력할 수 있습니다.
4.3. 디스크 사용량을 실시간으로 모니터링하기
$ watch -d 'du -sh /home'
이 명령어는 /home 디렉토리의 크기를 실시간으로 감시할 때 유용합니다.
5. 결론
du 명령어는 리눅스에서 디스크 사용량을 분석하는 데 매우 유용한 도구입니다. 특히 -h, -s, --max-depth, -c 등의 옵션을 잘 활용하면 불필요한 파일을 쉽게 찾아내고, 시스템을 효율적으로 관리할 수 있습니다.
리눅스 서버를 운영하거나 디스크 용량을 관리할 때 du 명령어를 적극 활용해 보세요~~ ☺️