1、简介
项目地址: https://dev.yorhel.nl/ncdu
ncdu (NCurses Disk Usage) 命令是一个基于 ncurses 界面的磁盘占用分析工具。其特点是快速、简单、且容易使用,可以键盘上下按键操作等。
2、安装
#CentOS
yum install ncdu
#Debian
apt-get install ncdu
#Ubuntu
apt-get install ncdu
#Alpine
apk add ncdu
#Arch Linux
pacman -S ncdu
#Kali Linux
apt-get install ncdu
#Fedora
dnf install ncdu
#OS X
brew install ncdu
#Raspbian
apt-get install ncdu
#Docker
docker run cmd.cat/ncdu ncdu
3、ncdu 命令补充说明:
ncdu(NCurses 磁盘使用情况)是众所周知的 du
的基于 curses
的版本,它提供了一种快速的方式来查看正在使用哪些磁盘空间的目录。
┌───ncdu help──────────1:Keys───2:Format───3:About─────────┐
│ │
│ │
│ NCurses │
│ Disk │
│ Usage │
│ │
│ 1.15.1 │
│ │
│ Written by Yoran Heling <projects@yorhel.nl> │
│ https://dev.yorhel.nl/ncdu/ │
│ │
│ │
│ Press q to close │
└──────────────────────────────────────────────────────────┘
4、ncdu 命令语法:
-h
打印一条小的帮助信息
-q
静音模式。在计算磁盘空间时,默认情况下,ncdu每秒将屏幕更新10次,在安静模式下,此间隔将减少为每2秒一次。使用此功能可以节省远程连接上的带宽。
-v
打印版本。
-x
仅将与指定dir相同的文件系统上的文件和目录计数。
--exclude PATTERN
排除与PATTERN匹配的文件。可以多次添加此参数以添加更多模式。
-X FILE,-- exclude-from FILE
排除与FILE中的任何模式匹配的文件。模式应该用换行符分隔。
5、ncdu 命令键盘操作:
up, k — 向上移动光标
down, j – 向下移动光标
right/enter — 打开选定的目录
left, <, h — 打开父目录
n — 按文件名排序(升序/降序)
s — 按文件大小排序(升序/降序)
C – 按项目数排序(升序/降序)
d – 删除选定的文件或目录
t — 排序时将目录放在文件前面
g – 以图形方式显示百分比
6、ncdu 命令实例:
ncdu 进行 Scan 目录分析:
┌───Scanning...───────────────────────────────────────────────────────────────┐
│ │
│ Total items: 129164 size: 3.5 GiB │
│ Current item: /Data/logs/api.juxing.error.log │
│ │
│ │
│ │
│ │
│ Scanning... Press q to abort │
└─────────────────────────────────────────────────────────────────────────────┘
#分析之后显示结果:
ncdu 1.15.1 ~ Use the arrow keys to navigate, press ? for help
--- / ---------------------------------------------------------------------------
2.7 GiB [##########] /usr
737.6 MiB [## ] /Data
680.2 MiB [## ] /var
186.0 MiB [ ] /boot
45.0 MiB [ ] /app
34.2 MiB [ ] /etc
468.0 KiB [ ] /run
448.0 KiB [ ] /root
40.0 KiB [ ] /tmp
e 16.0 KiB [ ] /lost+found
8.0 KiB [ ] /opt
8.0 KiB [ ] /mnt
e 4.0 KiB [ ] /srv
e 4.0 KiB [ ] /media
e 4.0 KiB [ ] /home
. 0.0 B [ ] /proc
0.0 B [ ] /sys
0.0 B [ ] /dev
@ 0.0 B [ ] lib64
@ 0.0 B [ ] sbin
@ 0.0 B [ ] lib
@ 0.0 B [ ] bin
ncdu 分析当前工作目录:
ncdu
ncdu 分析给定目录:
ncdu path/to/directory
ncdu 将结果保存到文件中:
ncdu -o path/to/file
ncdu 排除与模式匹配的文件,可以多次指定参数以添加更多模式:
ncdu --exclude '*.txt'
ncdu 命令使用场景:
一直在用 ncdu 经常在要删除一些东西的时候很有用,排序出来,不过删除的时候要注意,按 d
删了一个后要按一下上下键,因为他的定位需要重刷一下。
ncdu 排序类似 du 的排序:du -s *|sort -n
。
┌───Confirm delete──────────────────────────────────────────────┐
│ Are you sure you want to delete "command-not-found.txt"? │
│ │
│ │
│ yes no don't ask me again │
└───────────────────────────────────────────────────────────────┘
ncdu 命令与 du 命令区别:
- 自动按大小排序。
- 可以逐个逐级深入查看子文件夹。
至少这两点就足以让我喜欢上 ncdu 了。du
、df
、top
等比较简陋,ncdu / pydf / htop
等工具本身很小,体验却不一样。