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

AI-generated summary

The discussion introduces gdu, a cross-platform (Linux/macOS/Windows) terminal-based disk usage analyzer inspired by ncdu, with superior performance due to Go’s concurrency support—especially on SSDs. doggie highlights gdu’s availability via package managers (e.g., brew install gdu, scoop install main/gdu) and its binary distribution, noting macOS users must run gdu-go due to naming conflicts. doggie provides a detailed comparison: while ncdu (C-based, single-threaded, ultra-stable, minimal) remains ideal for legacy or minimal systems, gdu (Go-based, multi-threaded, colorful UI, faster on large file sets) excels in modern workstations and SSD environments. Both share nearly identical CLI syntax and interactive shortcuts (e.g., Enter, d, q). The post concludes with contextual recommendations: choose gdu for speed and aesthetics; stick with ncdu for stability or simplicity.

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/Down 或 j/k: 移动光标
    • Enter: 进入目录
    • d: 删除选中的文件或目录
    • q: 退出

4. 总结与建议

  • 选择 ncdu 的情况:

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

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

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