본문 바로가기
IT

Ubuntu에서 디스크 용량을 많이 차지하는 디렉토리와 파일 찾는법 - shell과 ncdu

by developer's warehouse 2025. 4. 14.

Ubuntu에서 디스크 공간이 모자랍니다.

오늘은 디스크 용량을 많이 차지하는 디렉토리와 파일을 한눈에 찾을 수 있는 쉘 스크립트를 만들고, ncdu를 통해 더 빠르게 용량 점검하는 새로운 방법도 알아보겠습니다.

🧩disk_usage_check.sh 쉘 스크립트

먼저 가장 간단하게 아래와 같은 쉘 스크립트를 만들어서 사용할 수 있습니다.

#!/bin/bash

echo "==== Top 10 Largest Directories in / ===="
sudo du -ahx $1 | sort -rh | grep -E '^([0-9\.]+G)' | head -n 10

echo ""
echo "==== Top 10 Largest Files in / ===="
sudo find $1 -type f -exec du -h {} + 2>/dev/null | sort -rh | head -n 10

 

사용 방법

1. 스크립트 파일생성

위 내용을 vi 나 다른 편집기로 입력합니다.

vi disk_usage_check.sh
또는 
cat > disk_usage_check.sh
#!/bin/bash

echo "==== Top 10 Largest Directories in / ===="
sudo du -ahx / | sort -rh | grep -E '^([0-9\.]+G)' | head -n 10

echo ""
echo "==== Top 10 Largest Files in / ===="
sudo find / -type f -exec du -h {} + 2>/dev/null | sort -rh | head -n 10

CTRL-D

2. 실행권한 부여 및 실행

chmod +x disk_usage_check.sh
./disk_usage_check.sh
또는
bash disk_usage_check.sh

 

3. 실행 방법 및 결과

실행하면 아래와 같이 용량을 많이 차지하는 TOP 10개 파일이 나타납니다.

lswhh@DESKTOP-HQPQNKV:~$ ./disk_usage_check.sh /home/lswhh
==== Top 10 Largest Directories in / ====
[sudo] lswhh 암호: 
3.8G    /home/lswhh

==== Top 10 Largest Files in / ====
252M    /home/lswhh/.keras/datasets/pspnet101_voc2012.h5
133M    /home/lswhh/JAVA/jdk-11.0.8/lib/modules
105M    /home/lswhh/google-chrome-stable_current_amd64.deb
104M    /home/lswhh/.cache/torch/hub/checkpoints/inception_v3_google-0cc3c7bd.pth
94M     /home/lswhh/.vscode-server/bin/ddc367ed5c8936efe395cffeec279b04ffd7db78/node
92M     /home/lswhh/.cache/torch/hub/checkpoints/2DFAN4-cd938726ad.zip
72M     /home/lswhh/.config/google-chrome/optimization_guide_model_store/40/0CB888B74FE8F85E/5AF66561C2F3CEF0/ts.bin
72M     /home/lswhh/.config/google-chrome/Default/optimization_guide_model_store/40/0CB888B74FE8F85E/66608EF7309B9C75/ts.bin
71M     /home/lswhh/.local/lib/python3.8/site-packages/imageio_ffmpeg/binaries/ffmpeg-linux64-v4.2.2

 

 

🧩 ncdu란?

ncdu는 NCurses Disk Usage의 줄임말로, du와 비슷하지만 텍스트 기반 UI(ncurses)를 제공하는 툴입니다.

  • 용량 큰 디렉토리/파일을 트리 구조로 보여줌
  • 인터랙티브하게 탐색 가능 (위/아래 화살표로 이동, d로 삭제도 가능)
  • 속도가 빠르고 직관적

사용 방법

1. 설치

Ubuntu에서 다음 명령어로 설치할 수 있습니다. 용량이 매우 작으므로 부담없이 설치하시면 됩니다.

sudo apt update
sudo apt install ncdu

lswhh@DESKTOP-HQPQNKV:~$ sudo apt install ncdu
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다       
상태 정보를 읽는 중입니다... 완료
다음 새 패키지를 설치할 것입니다:
  ncdu
0개 업그레이드, 1개 새로 설치, 0개 제거 및 140개 업그레이드 안 함.
42.8 k바이트 아카이브를 받아야 합니다.
이 작업 후 105 k바이트의 디스크 공간을 더 사용하게 됩니다.
받기:1 http://archive.ubuntu.com/ubuntu focal/universe amd64 ncdu amd64 1.14.1-1 [42.8 kB]
내려받기 42.8 k바이트, 소요시간 1초 (32.1 k바이트/초)               
Selecting previously unselected package ncdu.
(데이터베이스 읽는중 ...현재 75372개의 파일과 디렉터리가 설치되어 있습니다.)
Preparing to unpack .../ncdu_1.14.1-1_amd64.deb ...
Unpacking ncdu (1.14.1-1) ...
ncdu (1.14.1-1) 설정하는 중입니다 ...
Processing triggers for man-db (2.9.1-1) ...

 

2. 사용

현재 디렉토리에서 ncdu를 실행합니다.

ncdu ./

다음과 같이 화면이 뜨면서 키로 조작 가능합니다.

나가려면 q를 누르면 되고 d를 눌러서 삭제도 가능합니다 .

ncdu 실제 수행 화면

3. 키와 기능

조작 키 기능
↑ / ↓ 항목 이동
디렉토리 열기
이전 디렉토리로 이동
d 파일/디렉토리 삭제
q 종료
n / s 이름/사이즈 기준 정렬 전환

 

결론

오늘은 우분투와 linux에서 사용할 수 있는 용량 검색 및 관리 툴인 ncdu와 du를 이용한 용량 체크 쉘 스크립트를 만들어보았습니다.

요즘 파이썬이 너무 맘대로 많이 깔려서 뭐가 있는지도 잘 모르는 사이에 디스크가 차고 있는데, 이런 툴이나 스크립트를 이용해 관리하시면 편리하실 것 같습니다.

facebook twitter kakaoTalk kakaostory naver band shareLink