리눅스

리눅스 서버 디스크 용량이 찼을 때 du -sh로 큰 폴더 찾는 법

opsnote 2026. 5. 3. 23:28

리눅스 서버에서 디스크 용량이 부족할 때 du -sh * ❘ sort -rh 명령어로 용량이 큰 폴더를 찾는 방법을 설명하는 이미지

서버를 운영하다 보면 df -h로 전체 용량을 먼저 확인하게 됩니다.
그런데 어느 영역이 찼는지 확인했다면, 그다음에는 “정확히 어떤 폴더가 용량을 많이 차지하는지” 찾아야 합니다.

이때 실무에서 자주 사용하는 명령어가 바로 아래입니다.

du -sh * | sort -rh
 

겉으로 보면 짧은 명령어지만, 현재 경로에서 용량이 큰 폴더를 빠르게 찾는 데 매우 유용합니다.
오늘은 이 명령어가 어떤 의미인지, 언제 쓰는지, 그리고 운영 서버에서 주의할 점은 무엇인지 정리해보겠습니다.


1. du -sh * | sort -rh는 언제 쓰나?

예를 들어 df -h 결과에서 /data, /backup, /var 같은 영역의 사용률이 높게 나왔다고 가정해 보겠습니다.

이럴 때 바로 파일을 삭제하는 것이 아니라,
먼저 해당 경로로 이동해서 어떤 폴더가 가장 큰지 순서대로 확인해야 합니다.

예:

cd /var
du -sh * | sort -rh
 

그러면 /var 바로 아래에 있는 폴더들 중 어떤 폴더가 용량을 많이 차지하는지 큰 순서대로 볼 수 있습니다.

즉, 이 명령어는 다음 상황에서 유용합니다.

  • 특정 마운트 경로에서 큰 폴더를 찾고 싶을 때
  • 로그, 백업, 업로드 파일 등 어느 디렉터리가 커졌는지 확인하고 싶을 때
  • 삭제 또는 정리 전에 먼저 범인 폴더를 찾고 싶을 때

2. 명령어 하나씩 뜯어보기

명령어는 아래처럼 구성되어 있습니다.

du -sh * | sort -rh
 

각 부분의 의미는 다음과 같습니다.

du

du는 디스크 사용량(Disk Usage) 을 확인하는 명령어입니다.

-s

summary의 의미입니다.
하위 파일과 폴더를 전부 길게 나열하지 않고, 각 항목의 합계만 보여줍니다.

-h

human-readable의 의미입니다.
바이트 단위가 아니라 K, M, G처럼 사람이 읽기 쉬운 단위로 표시됩니다.

*

현재 경로 아래의 모든 파일/폴더를 대상으로 하겠다는 뜻입니다.

|

앞 명령어의 결과를 뒤 명령어로 넘기는 파이프입니다.

sort -rh

정렬 명령어입니다.

  • -r : 큰 값부터 역순 정렬
  • -h : 사람이 읽기 쉬운 단위(K/M/G)를 이해하고 정렬

즉, 최종적으로는 현재 경로의 항목들을 용량 큰 순서대로 정렬해서 보여주는 명령어가 됩니다.


3. 예시로 보면 더 이해가 쉽다

예를 들어 /var에서 아래 명령어를 실행했다고 가정해 보겠습니다.

cd /var
du -sh * | sort -rh
 

출력 예시는 다음과 비슷할 수 있습니다.

8.5G  log
2.1G  tmp
1.4G  cache
320M  spool
40M   www
 

이 결과를 보면 /var/log가 가장 큰 용량을 차지하고 있다는 걸 바로 알 수 있습니다.

이제 여기서 다음 단계는 단순합니다.

  1. 가장 큰 폴더로 이동
  2. 다시 같은 방식으로 세부 경로 확인
  3. 무엇이 커졌는지 원인 파악

예를 들어:

cd /var/log
du -sh * | sort -rh
 

이렇게 한 단계씩 좁혀가면 용량이 커진 정확한 위치를 추적할 수 있습니다.


4. 운영 서버에서 주의할 점

이 명령어는 편리하지만, 운영 환경에서는 몇 가지 주의할 점이 있습니다.

① 무조건 /에서 바로 실행하지 않기

루트(/)에서 바로 아래처럼 실행하면:

du -sh * | sort -rh
 

시스템 전체를 광범위하게 읽게 되어 시간이 오래 걸릴 수 있고,
환경에 따라 불필요한 부하를 줄 수도 있습니다.

가능하면 먼저 df -h로 문제가 있는 마운트 경로를 확인한 뒤,
그 경로 안에서 실행하는 것이 더 안전합니다.

예:

cd /data
du -sh * | sort -rh
 

② “큰 폴더”를 찾는 용도이지, 바로 삭제하는 용도가 아님

이 명령어 결과를 보고 바로 지우기 시작하면 위험합니다.

예를 들어 큰 폴더가 보이더라도, 그것이

  • 현재 서비스에서 사용하는 업로드 경로인지
  • 백업 보관 경로인지
  • 로그 경로인지
  • 애플리케이션이 참조 중인 데이터인지

먼저 판단해야 합니다.

항상 순서는:

확인 → 판단 → 조치

입니다.


③ 권한 문제나 특수 경로는 결과가 다르게 보일 수 있음

일부 디렉터리는 권한이 없으면 정확히 읽지 못할 수 있습니다.
또한 심볼릭 링크나 마운트 구조에 따라 예상과 다르게 보일 수 있으므로,
한 번의 결과만 보고 단정하지 말고 경로를 단계적으로 좁혀가며 확인하는 것이 좋습니다.


5. 실무에서는 이렇게 이어서 본다

용량 이슈가 발생하면 보통 아래 흐름으로 점검합니다.

1단계. 전체 현황 확인

df -h
 

어느 마운트 영역이 찼는지 확인합니다.

2단계. 큰 폴더 찾기

cd /문제가_있는_경로
du -sh * | sort -rh
 

큰 폴더를 찾습니다.

3단계. 더 깊게 들어가기

cd 큰폴더
du -sh * | sort -rh
 

세부 경로를 좁혀서 원인을 찾습니다.

4단계. 큰 파일 확인

find . -type f -size +100M -exec ls -lh {} +
 

폴더 안에서 실제 큰 파일을 찾습니다.

이렇게 보면 단순히 “용량이 크다”는 수준이 아니라,
어느 폴더 → 어느 파일 → 무엇 때문에 증가했는지까지 추적할 수 있습니다.


6. 자주 헷갈리는 점

Q. du -sh *만 써도 되지 않나요?

네, 현재 경로의 각 항목 용량을 요약해서 보는 데는 충분합니다.
다만 결과가 정렬되지 않기 때문에, 실무에서는 보통 아래처럼 sort -rh를 붙여서 큰 것부터 보이게 합니다.

du -sh * | sort -rh
 

Q. 파일도 같이 나오나요?

네, 현재 경로에 있는 파일도 함께 나올 수 있습니다.
하지만 보통은 폴더 위주로 보게 되고, 더 구체적인 파일 확인은 find 명령어로 이어서 보는 경우가 많습니다.

Q. 삭제 전에 무엇을 꼭 확인해야 하나요?

  • 서비스에서 사용하는 경로인지
  • 백업/로그/업로드/데이터 경로인지
  • 프로세스가 사용 중인 파일인지
  • 삭제보다 비우기(truncate) 가 더 안전한 경우는 아닌지

이런 점을 확인해야 합니다.


7. 정리

du -sh * | sort -rh는
현재 경로에서 용량이 큰 폴더를 빠르게 찾는 데 가장 실용적인 명령어 중 하나입니다.

특히 용량 부족 상황에서는 무작정 삭제하기보다,
먼저 이 명령어로 어디가 큰지 확인하는 것이 더 중요합니다.

핵심만 다시 정리하면:

  • df -h : 어느 영역이 찼는지 본다
  • du -sh * | sort -rh : 그 안에서 큰 폴더를 찾는다
  • find : 큰 파일을 찾는다
  • 조치는 반드시 확인 후 진행한다

서버 관리에서는 “빨리 지우는 것”보다
정확히 확인하고 안전하게 조치하는 것이 더 중요합니다.

 

서버 용량 이슈는 한 번에 해결되기보다, 순서대로 좁혀가는 것이 안전합니다.

먼저 df -h로 어느 마운트 영역이 찼는지 확인하고, 그다음 du -sh * | sort -rh로 큰 폴더를 찾습니다.
큰 폴더를 찾았다면 다시 그 안으로 들어가서 같은 방식으로 확인하고, 마지막에는 find로 실제 큰 파일까지 확인하는 흐름이 좋습니다.

디스크 용량이 90%를 넘었을 때 전체적으로 어떤 순서로 확인하면 좋은지는 아래 글에서 정리했습니다.

https://opsnote.tistory.com/1

 

리눅스 서버 디스크 용량 90% 넘었을 때 바로 삭제하지 말고 확인하는 법

리눅스 서버를 운영하다 보면 디스크 용량 90% 이상 사용 중 같은 알림을 받을 때가 있습니다. 이때 바로 파일을 삭제하면 로그 분석에 필요한 파일을 지우거나, 서비스가 사용 중인 파일을 잘못

opsnote.tistory.com

df -h 결과를 볼 때 Use%만 보면 안 되는 이유는 아래 글과 함께 보면 좋습니다.

https://opsnote.tistory.com/2

 

리눅스 서버 df -h 결과, Use%만 보면 안 되는 이유와 확인 순서

리눅스 서버에서 디스크 용량을 확인할 때 가장 많이 쓰는 명령어는 df -h입니다. 그런데 초보 운영자는 Use% 숫자만 보고 “90%니까 바로 파일을 지워야 하나?”라고 판단하기 쉽습니다. 하지만 서

opsnote.tistory.com

 

큰 폴더를 찾은 뒤 실제 큰 파일을 찾는 방법은 아래 글에서 이어서 볼 수 있습니다.

https://opsnote.tistory.com/4

 

리눅스 서버 디스크 용량을 잡아먹는 큰 파일 find 명령어로 찾는 법

리눅스 서버에서 디스크 용량이 부족할 때는 먼저 df -h로 어느 영역이 찼는지 확인합니다.그다음 du -sh * | sort -rh 명령어로 어떤 폴더가 큰지 확인할 수 있습니다.그런데 폴더 단위로 확인한 뒤에

opsnote.tistory.com

 

디스크 용량 문제를 전체 흐름으로 보고 싶다면 아래 글을 함께 보면 좋습니다.

https://opsnote.tistory.com/70

 

리눅스 서버 디스크 용량 문제 확인 순서 총정리

리눅스 서버를 운영하다 보면 디스크 용량 문제는 생각보다 자주 만납니다.처음에는 단순해 보입니다.디스크가 찼다.공간이 부족하다.큰 파일을 지우면 된다. 하지만 운영 서버에서는 이렇게

opsnote.tistory.com