首页/软件/Ncdu 磁盘用量分析器
N

Ncdu 磁盘用量分析器

更新于 2026-10-06

Ncdu:轻量高效的终端磁盘用量分析器 #

Ncdu 是什么? #

Ncdu(全称 NCurses Disk Usage)是一款基于 ncurses 文本用户界面的磁盘用量分析器,本质上可以理解为 du 命令的交互式可视化版本。它专为没有完整图形环境、只能通过 SSH 连接的远程服务器而设计,但同样适用于普通桌面系统。

启动后,Ncdu 会扫描指定目录,并按照占用空间大小列出子目录与文件,让你一眼看出"空间被谁吃掉了"。你可以用方向键在目录树中自由穿行,随时切换按大小或名称排序,查看文件权限、所有者与修改时间,甚至直接在界面内删除文件。官方将其定位为"快速、简单、易用,并能在任何类 POSIX 系统上运行"的磁盘分析工具,采用 MIT 许可证开源发布。

Ncdu 有哪些亮点特色? #

  • 纯文本界面,远程服务器友好:基于 ncurses 构建,无需 GUI 环境,通过 SSH 即可在无桌面的服务器上完整使用,特别适合排查线上主机磁盘爆满问题。

  • 极速扫描与按需并行:自 2.5 版本起支持并行扫描,默认单线程运行,通过 -t8 即可启用 8 线程扫描,在大容量目录树上显著缩短等待时间。

  • 静态二进制,下载即用:官方为 Linux 提供 x86、x86_64、ARM、AArch64 四个架构的静态二进制包,解压后直接运行,无需编译、无需安装任何依赖。

  • 二进制导出格式,突破内存限制:2.6 版本引入的全新二进制导出格式(-O)支持内置压缩与低内存多线程导出,并能浏览大到无法整体载入内存的目录树;相比 JSON 导出,多线程场景下内存占用优势明显。

  • 灵活的数据交换能力:支持 JSON 格式(-o)导出与导入,可选用 Zstandard 压缩(-c)大幅缩减文件体积,方便把扫描结果传给其他工具或离线分析。

  • 丰富的界面选项:可切换显示磁盘占用/表观大小、隐藏文件、文件数量、修改时间、百分比与条形图;--graph-style 支持 hash、half-block、eighth-block 三种图形样式,--color=dark 可开启彩色显示。

  • 深度的扫描控制:支持 -x 不跨文件系统、--exclude 排除模式、-X 从文件读取排除规则、--exclude-caches 跳过缓存目录、--exclude-kernfs 排除 Linux 伪文件系统、-L 跟随符号链接等多种精细选项。

  • 开源且广泛收录:采用 MIT 许可证,已被 Debian、Ubuntu、Fedora、Arch、Alpine、OpenSUSE、FreeBSD、OpenBSD、NixOS、Homebrew、MacPorts 等数十个发行版与包管理系统收录,几乎随处可装。

Ncdu 磁盘用量分析器截图

免费下载 Ncdu #

以下为官方提供的 Linux 静态二进制包,下载解压后即可直接运行,无需编译或安装。

文件名 描述 大小 下载
ncdu-2.9.1-linux-aarch64.tar.gz Linux AArch64(ARM64)静态二进制 382.2 KB 夸克网盘
ncdu-2.9.1-linux-arm.tar.gz Linux ARM(32 位)静态二进制 377.8 KB 夸克网盘
ncdu-2.9.1-linux-x86.tar.gz Linux x86(32 位)静态二进制 359.5 KB 夸克网盘
ncdu-2.9.1-linux-x86_64.tar.gz Linux x86_64(64 位)静态二进制 368.2 KB 夸克网盘

说明:官网同时提供最新稳定版 2.9.2(Zig 版本,2025-10-24 发布)与长期维护版 1.22(C 版本,2025-03-05 发布)的源码包(ncdu-2.9.2.tar.gz / ncdu-1.22.tar.gz)。若你需要自行编译,可前往官网 Downloads 页面获取源码与校验信息。

Ncdu 如何使用? #

Ncdu 的使用方式非常直接,核心流程如下:

  1. 启动扫描:在终端输入 ncdu 会扫描当前目录;指定路径则扫描该目录,例如 ncdu /var/log。初次扫描大目录会显示进度,扫描完成后自动进入浏览界面。

  2. 浏览目录树:使用 ↑/↓ 方向键移动光标,按 Enter 或 → 进入选中的目录,按 ← 返回上一级。顶部始终显示当前路径,底部显示整体磁盘占用情况。

  3. 切换排序方式:按 n 按文件名排序,按 s 按文件大小排序,按 C 按子项数量排序;开启扩展模式(-e)后还可用 M 按修改时间排序。

  4. 查看与操作文件:按 i 查看选中项的详细信息(路径、大小、权限、所有者等),按 g 切换条形图显示,按 a 在磁盘占用与表观大小之间切换。按 d 可删除选中项(会弹出确认窗口,2.9 版本改进了该确认窗口的可访问性),按 b 可在当前目录生成一个 shell。

  5. 退出与导出:按 q 退出;若只想导出数据而不进入界面,可使用 ncdu -o result.json /path(JSON 格式)或 ncdu -O result.bin /path(二进制格式),之后用 ncdu -f result.json 重新加载浏览。

常用命令行示例:

# 扫描根目录,启用 8 线程并行扫描
ncdu -t8 /

# 只统计同一文件系统,并排除 node_modules
ncdu -x --exclude node_modules /home

# 导出为 Zstandard 压缩的 JSON
ncdu -o - /data | zstd > data.json.zst

# 导出为二进制格式(适合超大型目录树)
ncdu -O data.bin /data

在配置文件中(2.x 版本为 $XDG_CONFIG_HOME/ncdu/config),你可以写入常用参数,例如 --color=dark 开启彩色显示。

Ncdu 的常见问题? #

Ncdu 和 du 命令有什么区别?

du 只能输出一长串静态文本,还需要配合 sort、head 等命令才能定位大目录;而 Ncdu 提供交互式的可浏览界面,能直接展开目录树、切换排序、查看文件详情并删除文件,定位空间占用问题的效率高得多。

为什么 Ncdu 默认没有颜色?

按照官网说明,Ncdu 自 1.13 起支持颜色,1.17 和 2.0 曾默认开启,但因为部分终端配色下文字难以辨认,官方在 1.20 和 2.4 中又改回默认关闭。如果你喜欢彩色显示,可以在配置文件中加入 --color=dark 自行开启。

导出文件太大怎么办?

导出体积与文件数量线性相关:约 1 万个文件的 JSON 导出在 600~700 KiB(未压缩),gzip 压缩后约 100 KiB,百万级文件可能达到几十 MB。官网建议使用 -c 启用 Zstandard 压缩,或在多线程/超大目录树场景下改用二进制格式 -O,它自带压缩且支持低内存导出。

扫描超大目录树时内存占用很高怎么解决?

单线程模式下 JSON 导出(-o)内存占用很低;但一旦启用多线程(-t),整棵目录树会先构建在内存中再写出,内存需求显著增加。此时应改用二进制格式(-O),它不存在这个问题,能够以任意线程数高效导出。

Zig 版本的 2.x 和 C 版本的 1.x 应该选哪个?

2.x 是用 Zig 重写的新版本,在界面和性能上有明显改进,但需要 Zig 0.14 或 0.15 编译,而 Zig 语言与编译器目前仍不够稳定。官网明确建议:如果编译失败或需要更稳定的编译环境,请使用 1.x 分支(最新为 1.22,仍在持续维护)。

Ncdu 能在 Windows 上运行吗?

可以。官网在"Packages and ports"一节中提到了 Windows 的二进制版本,同时也提供了 Tru64 UNIX 的二进制。不过 Ncdu 的核心定位仍是类 POSIX 系统,Windows 上的体验以官方给出的二进制为准。

Ncdu 能扫描网络存储或复杂 RAID 吗?

官网作者特别提到,如果你运行的是网络存储、非标准文件系统或复杂 RAID 等不寻常的配置,欢迎反馈并行扫描功能的性能影响。可通过 -0 --quit-after-scan 关闭浏览器界面只做扫描,或用 -0o/dev/null 对 JSON 导出做基准测试。(来源:官网正文脚注)

Ncdu 如何安装? #

从官方静态二进制安装(推荐,Linux) #

  1. 根据架构下载对应的 ncdu-2.9.1-linux-*.tar.gz 文件。
  2. 解压:tar -xzf ncdu-2.9.1-linux-x86_64.tar.gz。
  3. 将得到的 ncdu 可执行文件移动到 PATH 目录,例如:sudo mv ncdu /usr/local/bin/。
  4. 执行 ncdu --version 验证安装是否成功。

通过包管理器安装 #

  • Debian / Ubuntu:sudo apt install ncdu
  • Fedora:sudo dnf install ncdu
  • Arch Linux:sudo pacman -S ncdu(也提供 ncdu-bin)
  • Alpine Linux:sudo apk add ncdu
  • openSUSE:sudo zypper install ncdu
  • Void Linux:sudo xbps-install ncdu
  • NixOS / GNU Guix:通过对应的声明式包管理安装
  • FreeBSD / OpenBSD:pkg install ncdu 或 pkg_add ncdu
  • OpenWRT:通过 opkg 安装

macOS #

  • Homebrew:brew install ncdu
  • MacPorts:sudo port install ncdu
  • Fink:通过 Fink 安装 ncdu

从源码编译 #

  • Zig 版本(2.x):下载 ncdu-2.9.2.tar.gz,需要 Zig 0.14 或 0.15 环境,解压后按官方 Makefile 编译。
  • C 版本(1.x,LTS):下载 ncdu-1.22.tar.gz,使用常规 ./configure && make && sudo make install 流程,编译环境要求更稳定。
  • 开发版本:git clone git://g.blicky.net/ncdu.git/,master 分支为 C 版本,zig 分支为 Zig 版本。

提示:官网所有发行包均提供 PGP 签名与 MD5/SHA1/SHA256 校验值,作者个人密钥指纹为 7446 0D32 B808 10EB A9AF A2E9 6239 4C69 8C27 39FA,下载源码后建议校验完整性。

Ncdu 如何卸载? #

Linux #

  • 通过包管理器安装的:使用对应命令卸载,例如 sudo apt remove ncdu、sudo dnf remove ncdu、sudo pacman -R ncdu、sudo apk del ncdu。
  • 使用静态二进制手动安装的:直接删除可执行文件即可,例如 sudo rm /usr/local/bin/ncdu。
  • 源码编译安装的:若保留了源码目录,可在其中执行 sudo make uninstall;否则手动删除安装路径下的 ncdu 文件与对应手册页。

macOS #

  • Homebrew:brew uninstall ncdu
  • MacPorts:sudo port uninstall ncdu
  • Fink:fink remove ncdu

Windows #

官方提供的是独立二进制文件,通常不写入注册表。直接删除 ncdu.exe 所在文件即可完成卸载。

残留文件清理 #

Ncdu 本体不会在系统中留下大量缓存,但如果你曾修改过配置文件,可手动删除以彻底清理:

  • Linux / macOS:~/.config/ncdu/config(或 $XDG_CONFIG_HOME/ncdu/config)
  • 若曾导出过 JSON 或二进制扫描结果(如 result.json、data.bin),这些文件需要自行删除。

卸载后如仍能在终端执行 ncdu,请检查是否有多个安装来源共存,使用 which -a ncdu 确认并逐一清理。

相关标签
ncdu磁盘用量分析NCurses Disk Usage终端磁盘工具Linux 磁盘空间清理du 替代工具服务器磁盘占用查看开源磁盘分析器磁盘空间不足排查命令行 TUI 工具