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 把这几步合并成了一条命令,终端里直接展示树状结构,大的目录自动排在前面。

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。它没改变磁盘分析这件事本身,只是把原本需要多步操作的流程压缩成了一次命令调用,输出结果也更容易一眼看懂。
浙公网安备 33010602011771号