gdu——扫描磁盘文件占用命令行工具

ncdu是一款磁盘文件占用扫描软件,类似DaisyDisk

ncdu /Users/ww/Downloads
# ncdu后面输入想要扫描的路径即可,/指全盘扫描

然而ncdu只在Mac、Linux平台可用 并没有Windows端

冲浪以后发现gdu功能类似,而且支持linux、mac、Windows全平台

用起来和ncdu几乎一样的体验,装好以后

gdu /

# To avoid a conflict with `coreutils`, `gdu` has been installed as `gdu-go`.
# macos需要使用gdu-go
gdu-go / 

gdu启动!

Windows安装

Windows建议通过scoop包管理器安装

scoop install main/gdu

你也可以直接下载安装github编译好的版本

Linux、macOS安装

用对应的包管理器安装即可,比如

brew install gdu

在 Linux 系统中,ncdu (NCurses Disk Usage) 是经典的磁盘空间分析工具,而 gdu (Go Disk Usage) 则是近年来出现的强力挑战者。

两者都采用终端交互界面,但在性能、底层技术和功能侧重点上有所不同。


1. 核心对比

特性 ncdu gdu
底层语言 C Go
扫描速度 较快(单线程) 极快(利用多核并发扫描)
交互性 经典 NCurses 界面 类 ncdu 界面,支持颜色高亮
并发处理 (在 SSD 上优势显著)
删除功能 支持 支持
安装包体积 极小 略大(静态编译)
主要优势 极其稳定,几乎所有仓库都有 速度碾压,现代化的显示效果

2. 详细对比分析

性能表现(核心差异)

  • gdu 的核心优势在于并发扫描。在搭载固态硬盘(SSD)的现代机器上,gdu 可以同时利用多个 CPU 核心读取目录树。对于拥有数百万个文件的海量数据盘,gdu 的扫描速度通常比 ncdu 快数倍。
  • ncdu 采用单线程工作方式。虽然在处理传统机械硬盘(HDD)时,并发带来的提升有限,但在 SSD 环境下,它的效率确实不如 gdu。

兼容性与部署

  • ncdu 是老牌工具,几乎预装在所有主流 Linux 发行版的官方仓库中。如果是在极简的服务器环境或嵌入式设备上,ncdu 通常是首选。
  • gdu 作为一个单可执行文件(Static Binary),部署也非常简单。它更适合开发者或运维人员在个人工作站或高性能服务器上作为 ncdu 的升级替代品。

视觉与交互

  • ncdu 界面非常素雅,典型的 90 年代终端风格。
  • gdu 默认开启色彩支持,能用不同的颜色区分目录和文件,并清晰地标示出空间占用百分比,视觉上更符合现代审美。

3. 常用命令对比

两者的操作逻辑非常相似,几乎可以无缝切换。

  • 基本扫描:
    • ncdu /path/to/dir
    • gdu /path/to/dir
  • 仅扫描当前文件系统(不跨越挂载点):
    • ncdu -x /
    • gdu -x /
  • 交互界面常用快捷键:
    • Up/Downj/k: 移动光标
    • Enter: 进入目录
    • d: 删除选中的文件或目录
    • q: 退出

4. 总结与建议

  • 选择 ncdu 的情况:

    • 你在维护一台非常老旧的服务器。
    • 你对软件的稳定性有近乎苛刻的要求。
    • 你习惯了没有色彩干扰的极简界面。
  • 选择 gdu 的情况:

    • 你需要扫描包含海量小文件(如 node_modules, 机器学习数据集)的目录。
    • 你在使用 SSD 或 NVMe 存储。
    • 你更喜欢有色彩高亮、响应更迅速的现代工具。

一句话建议: 如果你追求极致的扫描效率,直接换成 gdu;如果你只需要偶尔在服务器上随便看看,ncdu 已经足够优秀。