리눅스 디스크 용량 확인 완벽 가이드 - du 명령어 실무 예제와 핵심 옵션 총정리

개요

리눅스 서버 운영 중 디스크 용량이 부족할 때 어떤 파일이나 디렉터리가 공간을 차지하는지 빠르게 찾아내는 것은 매우 중요합니다. 지루한 man 페이지 대신 실습 예제를 통해 du 명령어의 기본 사용법부터 실무에서 자주 쓰이는 핵심 옵션까지 한 번에 정리합니다.

1. 실습 환경 준비 및 기본 du 명령어 실행

du 명령어 실습을 위해 다양한 크기의 테스트 파일과 디렉터리를 생성하는 mkdir -p /tmp/du_demo/logs /tmp/du_demo/backup && truncate -s 10M /tmp/du_demo/backup/data.bin && truncate -s 5M /tmp/du_demo/logs/app.log 명령어를 실행합니다.

mkdir -p /tmp/du_demo/logs /tmp/du_demo/backup && truncate -s 10M /tmp/du_demo/backup/data.bin && truncate -s 5M /tmp/du_demo/logs/app.log

du 명령어는 지정한 디렉터리와 하위 디렉터리가 실제로 차지하는 디스크 사용량을 블록 단위(기본 1024바이트)로 출력합니다.
옵션 없이 실행하면 하위 디렉터리 경로와 함께 각 디렉터리의 디스크 점유량을 숫자로 표시합니다.
⚙️ [주요 옵션]

-h : 용량을 사람이 읽기 쉬운 형태(K, M, G 등)로 표시합니다.
-a : 디렉터리뿐만 아니라 개별 파일의 사용량까지 모두 출력합니다.
-s : 하위 항목을 나열하지 않고 전체 사용량 합계만 요약하여 표시합니다.
-d : 디스크 사용량을 탐색할 하위 디렉터리의 최대 깊이(depth)를 지정합니다.
-c : 모든 사용량을 출력한 후 마지막 줄에 총합계(total)를 표시합니다.
-b : 디스크 할당 블록 크기 대신 파일의 실제 겉보기 크기(apparent size)를 바이트 단위로 출력합니다.

du /tmp/du_demo

-h(--human-readable) 옵션을 사용하면 디스크 사용량을 K(킬로바이트), M(메가바이트), G(기가바이트) 등 읽기 편한 단위로 변환하여 출력합니다.
기본 숫자 출력보다 직관적으로 디렉터리별 용량을 파악할 수 있습니다.

du -h /tmp/du_demo

2. 탐색 깊이 제한과 전체 합계 확인 (-d, -s, -c)

디렉터리 탐색 깊이 제한 실습을 위해 여러 단계의 하위 디렉터리와 샘플 파일을 생성하는 mkdir -p /tmp/du_demo/nested/level1/level2 && truncate -s 2M /tmp/du_demo/nested/level1/level2/dummy.bin 명령어를 실행합니다.

mkdir -p /tmp/du_demo/nested/level1/level2 && truncate -s 2M /tmp/du_demo/nested/level1/level2/dummy.bin

-d 1(--max-depth=1) 옵션을 지정하면 지정한 디렉터리로부터 깊이 1단계에 해당하는 직속 하위 디렉터리의 디스크 사용량만 탐색하여 표시합니다.
더 깊은 하위 디렉터리들이 불필요하게 모두 나열되는 것을 방지하고 최상위 디렉터리별 용량을 한눈에 확인할 때 유용합니다.

du -h -d 1 /tmp/du_demo

-s(--summarize) 옵션은 모든 하위 디렉터리의 개별 항목을 나열하지 않고 전체 디스크 사용량을 하나의 행으로 요약하여 출력합니다.
-h 옵션과 함께 사용하여 대상 디렉터리의 총점유량을 빠르고 간결하게 파악할 수 있습니다.

du -sh /tmp/du_demo

-c(--total) 옵션을 함께 전달하면 각 디렉터리의 사용량을 모두 출력한 뒤 마지막 줄에 전체 총합계(total)를 표시합니다.
개별 디렉터리 사용량과 전체 점유 용량을 한 번에 비교하고 계산할 때 유용합니다.

du -ch -d 1 /tmp/du_demo

3. 개별 파일 크기 조회와 특정 패턴 제외 (-a, –exclude)

특정 파일 패턴 제외 실습에 사용할 임시 파일을 준비하기 위해 touch /tmp/du_demo/temp1.tmp /tmp/du_demo/temp2.tmp 명령어를 실행합니다.

touch /tmp/du_demo/temp1.tmp /tmp/du_demo/temp2.tmp

-a(--all) 옵션을 지정하면 디렉터리뿐만 아니라 하위의 개별 파일 단위까지 디스크 사용량을 출력합니다.
-h 옵션과 조합하여 /tmp/du_demo/logs 디렉터리 내에 있는 파일별 용량을 사람이 읽기 쉬운 단위로 상세하게 확인할 수 있습니다.

du -ah /tmp/du_demo/logs

--exclude 옵션을 사용하면 지정한 패턴과 일치하는 파일이나 디렉터리를 디스크 용량 계산에서 제외합니다.
--exclude='*.tmp'를 적용하여 임시 파일(.tmp)을 제외한 나머지 디렉터리들의 실제 디스크 점유량만 선별하여 조회할 수 있습니다.

du -h –exclude=’*.tmp’ /tmp/du_demo

4. 실무 활용: 용량 상위 디렉터리 정렬 및 대용량 파일 색출

용량 정렬 및 대용량 파일 색출 실습을 위해 추가 테스트 파일을 생성하는 truncate -s 50M /tmp/du_demo/backup/big.tar && truncate -s 20M /tmp/du_demo/logs/access.log 명령어를 실행합니다.

truncate -s 50M /tmp/du_demo/backup/big.tar && truncate -s 20M /tmp/du_demo/logs/access.log

du -h -d 1 /tmp/du_demo의 결과를 파이프라인(|)을 통해 sort -hr 명령어로 전달하면 1단계 깊이의 하위 디렉터리들을 용량이 큰 순서(내림차순)로 정렬하여 출력합니다.
어떤 디렉터리가 디스크 공간을 가장 많이 차지하고 있는지 한눈에 파악할 때 매우 유용합니다.

du -h -d 1 /tmp/du_demo | sort -hr

du -ah /tmp/du_demo로 모든 파일과 디렉터리의 용량을 구한 뒤, sort -hr로 크기순 정렬하고 head -n 5를 통해 상위 5개 항목만 잘라내어 출력합니다.
시스템에서 가장 큰 용량을 차지하는 최상위 대용량 파일 및 디렉터리를 신속하게 색출할 수 있습니다.

du -ah /tmp/du_demo | sort -hr | head -n 5

모든 실습을 마친 후 실습용으로 생성했던 임시 디렉터리와 테스트 파일들을 시스템에서 깨끗하게 제거하기 위해 rm -rf /tmp/du_demo 명령어를 실행합니다.

rm -rf /tmp/du_demo

지금까지 리눅스에서 du 명령어를 활용해 디스크 용량을 확인하는 핵심 옵션과 실무 예제를 간단하게 정리해보았습니다.
상황에 맞는 적절한 옵션을 활용하여 효율적으로 디스크 공간을 관리하고 모니터링해보시기 바랍니다.