11.7k Star 的磁盘分析工具 dust,du 命令后只需要这一个

11.7k Star 的磁盘分析工具 dust,du 命令后只需要这一个

dust 在 GitHub 上获得了 11,724 个 Star:

正文顶部截图

dust 是一个用 Rust 重写的磁盘占用分析命令行工具,名字取自 du + rust。它的定位很简单:du 的直觉版替代品,不需要 sort 和 head 就能看清磁盘空间分布。

如果你日常用 du 查磁盘占用,大概率经历过这样的流程:du -d 1 -h | sort -h 排序,找到最大的目录再 cd 进去,再来一遍 du,循环往复直到定位到具体的大文件。dust 把这几步合并成了一条命令,终端里直接展示树状结构,大的目录自动排在前面。

README区域截图

dust 的设计思路是"只展示真正占空间的内容"。默认输出行数等于终端高度减一,保证一屏内看完。从根目录开始递归,自动向下展开占比最大的子目录,不需要手动指定 -d 深度参数。

看一组实际输出就能理解它的逻辑。假设 target 目录占了 1.8G,下面的 debug 同样是 1.8G,说明空间几乎全集中在 debug 里。再往下,deps 占了 1.2G,进度条跳到 70%,表示这里是主要占用区。定位到一个 46M 的文件时,进度条骤降到 3%。整个排查过程不到一秒钟,不用反复 cd 和 du。

dust 在输出设计上也花了心思。每个目录的条形图上方有一根浅灰色竖线,表示该目录所属的父级。比如 .steam 占了 44%,从它的条形图往上追,所有包含灰色线的目录都隶属于 .steam。这意味着删掉 .steam,这些子目录也会一并清理。判断哪些目录可以安全删除时这个功能很实用。

与其他同类工具对比,dust 在处理大量小文件的场景下更有优势。它会自动聚合小文件,只展示有意义的层级,不会被成百上千个几 KB 文件刷屏。同时 dust 默认不重复计算硬链接,避免同一个文件被多次统计。它还支持输出 JSON(-j 参数),可以配合 jq 做进一步的数据处理。

安装覆盖了主流平台。Rust 用户用 cargo install du-dust。macOS 和 Linux 可以用 brew install dust。Ubuntu 支持 snap install dust。Windows 用户通过 scoop install dust 安装。也提供了在线安装脚本:

curl -sSfL https://raw.githubusercontent.com/bootandy/dust/refs/heads/master/install.sh | sh

命令行用法足够直接。在目标目录下敲 dust 就开始分析,也可以同时指定多个路径做对比:

dust <dir>
dust <dir> <another_dir>

参数方面,-n 控制展示行数,-d 限制递归深度,-r 反转排序,-s 计算文件实际大小,-F 只显示文件,-X 排除指定目录名,-z 过滤过小的条目,-e 和 -v 通过正则做包含和排除过滤。dust 还支持配置文件持久化参数偏好,在 ~/.config/dust/config.toml 中写入选项后每次运行自动生效。

如果你的工作场景中需要频繁检查磁盘空间分布,dust 可以省掉 du 后面的 sort、head 和反复 cd。它没改变磁盘分析这件事本身,只是把原本需要多步操作的流程压缩成了一次命令调用,输出结果也更容易一眼看懂。

posted @ 2026-06-07 15:29  techfusion55  阅读(13)  评论(0)    收藏  举报