ncdu 命令
简介
ncdu (NCurses Disk Usage) 是一个基于终端的磁盘使用分析工具,用于可视化文件系统中各个目录和文件的大小。它提供了交互式的界面,可以帮助用户快速定位占用大量磁盘空间的文件和目录。
与传统的 du 命令相比,ncdu 具有以下优势:
- 交互式界面,操作更加直观
- 彩色显示,便于识别不同类型的项目
- 支持排序功能,可以按大小、名称等排序
- 支持删除功能,可以直接在界面中删除文件
- 轻量级,占用资源少
安装
Ubuntu/Debian 系统
bash
sudo apt-get install ncdu
CentOS/RHEL/Fedora 系统
bash
# CentOS/RHEL
sudo yum install ncdu
# 或者对于较新版本
sudo dnf install ncdu
macOS 系统
bash
brew install ncdu
Arch Linux 系统
bash
sudo pacman -S ncdu
Windows 系统
bash
# 使用 Chocolatey 安装
choco install ncdu
# 或者使用 Scoop 安装
scoop install ncdu
基本使用
扫描当前目录
bash
ncdu
扫描指定目录
bash
ncdu /path/to/directory
扫描多个目录
bash
ncdu /path/to/dir1 /path/to/dir2
常用参数
-0, --null:使用 NULL 字符分隔输出,用于脚本处理-1, --brief:仅显示结果,不进入交互式界面-a, --all:显示隐藏文件和目录-c, --color:使用颜色显示-d DEPTH, --depth=DEPTH:限制扫描深度-e, --exclude-hidden:排除隐藏文件和目录-f FILE, --file=FILE:从指定文件加载扫描结果-h, --human-readable:以人类可读的格式显示大小-i, --include-pattern=PATTERN:仅包含匹配指定模式的文件-o FILE, --output=FILE:将扫描结果保存到指定文件-r, --recursive:递归扫描子目录(默认启用)-s, --si:使用 SI 单位(1000 为基数)显示大小-t, --threshold=SIZE:仅显示大于指定大小的文件-u, --update:重新扫描当前目录-v, --version:显示版本信息-x, --one-file-system:仅扫描当前文件系统
界面说明
ncdu 界面分为三个主要部分:
-
顶部信息栏:
- 当前目录路径
- 扫描进度(如果正在扫描)
- 总大小统计
-
中间文件/目录列表:
- 显示文件和目录的大小
- 显示文件和目录的名称
- 使用颜色区分文件类型
-
底部功能键提示:
- 显示可用的快捷键和功能
快捷键操作
导航
↑/↓或k/j:上下移动光标←/→或h/l:进入/退出目录PageUp/PageDown:翻页Home/End:跳转到列表开头/结尾
操作
Enter:进入选中的目录n:按名称排序(升序/降序切换)s:按大小排序(升序/降序切换)c:按项目数排序(升序/降序切换)a:切换显示方式(目录大小/项目大小)d:删除选中的文件或目录i:显示选中项目的详细信息g:切换显示单位(B/K/M/G/T)e:在当前目录下执行命令r:重新扫描当前目录t:切换到树状视图v:显示版本信息q:退出 ncdu
筛选和搜索
/:搜索文件或目录f:筛选显示的内容w:切换显示隐藏文件
实际应用场景
查找大文件和目录
bash
# 扫描整个系统,找出占用空间最大的目录
ncdu /
分析特定目录
bash
# 分析 home 目录
ncdu ~/
# 分析服务器日志目录
ncdu /var/log/
保存和加载扫描结果
bash
# 保存扫描结果到文件
ncdu -o disk_usage.txt /
# 加载扫描结果
ncdu -f disk_usage.txt
限制扫描深度
bash
# 只扫描两层目录结构
ncdu -d 2 /
生成报告
bash
# 生成非交互式报告
ncdu -1h /path/to/directory
高级功能
使用正则表达式筛选
bash
# 只显示图片文件
ncdu -i "\.(jpg|jpeg|png|gif)$" /
排除特定目录
bash
# 扫描根目录,但排除 /proc 和 /sys
ncdu --exclude /proc --exclude /sys /
仅扫描特定文件系统
bash
# 只扫描当前文件系统,不跨挂载点
ncdu -x /
结合其他命令使用
bash
# 找出最大的 10 个文件并显示详细信息
ncdu -1 / | sort -hr | head -10
注意事项
- 扫描大目录时可能需要较长时间,请耐心等待
- 删除文件操作不可逆,请谨慎使用
d键 - 扫描根目录通常需要管理员权限
- 长时间扫描可能会影响系统性能
- 在网络文件系统(如 NFS、SMB)上使用时,性能可能较慢
相关命令
du:传统的磁盘使用分析命令df:显示磁盘分区的使用情况find:查找文件和目录ls:列出目录内容duf:另一个现代化的磁盘使用分析工具ncdu:基于终端的交互式磁盘使用分析工具(本文档的主角)
最后更新:2026-02-07