disktree:用一张方块地图,逼你直面那块快炸的硬盘
Omarchy 系统里一款用 Rust + GPUI 写的磁盘占用可视化工具,一周拿到 977 颗星。本文拆开它的用法、适用边界,以及用之前必须想清楚的几个问题。

适合:Omarchy 或 Arch 系用户,想要快速看清硬盘被谁占满、又不想在字符界面里反复 du 的人。
先说结论
disktree 干的事很直白:把硬盘里的每一个文件夹压成方块,块越大,占得越多。配合 Omarchy 这套极客向的 Linux 发行版,它用 Rust 加 GPUI 做底层,渲染比传统 ncdu 这种字符界面快一截,也更直观。
值不值得装,取决于一件事:你愿不愿意真的动手删东西。如果只是看一眼热闹,它可能不如一行 du -sh 加 df -h 来得快。
真正的问题
磁盘满到报警时,大多数人的反应是三连:du 看看谁大,find 找找老日志,rm -rf 一通乱删。问题出在第三步。
没看清就删,容易误伤系统目录和 dotfiles 目录。桌面用户还容易忽略一个问题:缓存目录、容器镜像、虚拟机快照、Steam 游戏库,这些大块头往往藏在非显眼路径。一个一个 du -sh 去扫,效率太低。
disktree 的思路是:让你直接看见块和块之间的关系。父目录是底色,子目录是浮在上面的小色块,鼠标点进去就下钻一层。物理直觉上,这比看一长串数字来得快。
它能解决的核心矛盾其实是「看得见」和「敢下手」之间的距离。数字不会让人紧张,方块会。
怎么做更省力
先把预期摆正:disktree 不是清理工具,它只是「看清楚」的工具。删不删、删哪个,最后还是你来决定。
如果你决定用,建议按下面这个顺序走:
1。 先跑一次全盘扫描,确认大块头分布。通常 /var 里是日志、~/.cache 里是浏览器和 IDE 缓存、~/Library 或 ~/.local/share 里常有容器和虚拟机的残留。 2。 再针对可疑路径单独扫一次,比如 docker system df、podman system df、lsof | grep deleted 看看哪些文件虽然显示在用、其实早就被删了。 3。 删之前,用 stat 看一眼修改时间,老于半年的目录优先处理。 4。 涉及 ~/.config、~/.ssh、~/.gnupg 这类目录,再小的块也别碰,宁可放过。
相比纯命令行工具,disktree 的优势在交互反馈。GPUI 渲染意味着你拖动窗口、点开多层目录时不会有明显卡顿,这是传统 TUI 工具做不到的体验。如果你在用 Omarchy,它几乎是为这套环境量身定做的。
如果你也在做类似的可视化盘点,可以先用AI词云生成器把扫描出的目录名提炼成关键词云,从宏观上判断哪些类别占比异常,再回到工具里逐个确认。
哪些坑要避开
别在它上面找「一键瘦身」按钮。它没有,也不该有。自动化清理的风险太大,工具作者应该也没打算背这个锅。
别把它当杀毒或安全审计工具。它只反映文件大小,不判断文件是否可疑。看到陌生的大目录,先用搜索引擎确认它属于哪个软件,再决定怎么处理。
还有一类隐藏坑:符号链接和挂载点。treemap 在展示时,容易把外部硬盘、Snap 包、Flatpak 沙盒的体积叠加计算,结果就是数字虚高。遇到这种情况,关掉外部盘再扫一次,结论才靠谱。
最后,Omarchy 用户和 Arch 系用户要注意:disktree 当前还在快速迭代,一周涨近千星说明功能还在动。生产环境里用,最好等版本号稍微稳定一点,别把日常清理流程完全押在它的早期版本上。
现在就能动手
打开终端,进入 Omarchy,跑 disktree 或者从 AUR 装好对应包。先扫 /,花两分钟看看大块头都在哪。然后只扫 ~,把 .cache、.local/share 这两路径单独点开,确认里面是不是浏览器、IDE、容器、虚拟机的老缓存。
凡是能确认归属、能用软件自身「清理缓存」功能处理的,就走软件自带的流程。剩下的、对不上的、再考虑手动删除。
工具的核心价值不是替你删,而是逼你在删之前,真的看清楚。