디렉토리 용량 크기별로 정렬하여 출력하기 (du + sort)
Linux 서버에서 디스크 용량이 부족할 때, 어느 디렉토리가 큰지 빠르게 파악하는 du + sort 조합을 정리한다.
[01] 현재 디렉토리 용량 확인
1-1. 기본 명령어
현재 위치한 디렉토리의 하위 폴더를 용량 큰 순서대로 출력한다.
1
du -h --max-depth=1 | sort -hr
| 옵션 | 설명 |
|---|---|
du -h |
용량을 사람이 읽기 쉬운 단위(K, M, G)로 표시 |
--max-depth=1 |
현재 디렉토리 바로 아래 수준까지만 표시 |
sort -h |
사람이 읽기 쉬운 단위를 고려한 정렬 (K < M < G) |
sort -r |
내림차순 정렬 (큰 것부터) |
출력 예시:
1
2
3
4
5
15G .
8.2G ./data
4.1G ./logs
2.3G ./backup
512M ./config
1-2. 특정 디렉토리 지정
/var 자리에 원하는 경로를 넣어 특정 디렉토리를 분석할 수 있다.
1
du -h --max-depth=1 /var | sort -hr
[02] 디렉토리만 필터링
2-1. 파일 제외, 디렉토리만 출력
grep을 추가하면 파일을 제외하고 디렉토리 항목만 볼 수 있다.
1
du -h --max-depth=1 | grep '/$' | sort -hr
grep '/$'는 /로 끝나는 항목(디렉토리)만 필터링한다.
2-2. depth 조정
--max-depth 값을 높이면 더 깊은 하위 디렉토리까지 확인할 수 있다.
1
2
# 2단계 깊이까지 확인
du -h --max-depth=2 | sort -hr | head -20
head -20을 붙이면 상위 20개만 출력해 가독성을 높일 수 있다.
[03] 활용 예시
3-1. 루트 디렉토리에서 큰 폴더 찾기
디스크 용량 부족 시 가장 먼저 실행할 명령어다.
1
sudo du -h --max-depth=1 / | sort -hr | head -15
루트(/) 탐색 시 sudo가 필요하며, 시간이 걸릴 수 있다.
3-2. 홈 디렉토리 정리
1
du -h --max-depth=1 ~ | sort -hr
3-3. 로그 디렉토리 점검
1
sudo du -h --max-depth=2 /var/log | sort -hr | head -10