电脑或服务器的磁盘空间逐渐减少时,真正占用容量的文件不一定容易找到。缓存、开发工具的构建产物、同步文件、旧项目和大型媒体文件可能分散在不同目录中。逐层打开文件夹虽然也能检查大小,但当目录层级较多时,排查过程会比较耗时。
disktree 提供了一种更直观的方式:将目录和文件组织成面积不同的矩形区域,让用户通过树图观察磁盘空间的分布。占用空间较大的目录会形成更显眼的区域,用户可以继续深入查看,再决定哪些内容需要清理。
这个项目使用 Rust 和 GPUI 构建,采用 MIT 开源许可证。它最初面向 Omarchy 桌面环境,但 GitHub 仓库也提供了 Linux、macOS 和 Windows 的安装说明。对于希望了解磁盘空间具体花在哪里,而不是直接运行自动清理程序的用户来说,disktree 是一个值得了解的选择。

树图如何帮助定位磁盘占用
disktree 最核心的设计是 Treemap,也就是树图。它把目录层级转换成嵌套的矩形区域,矩形面积与对应内容的磁盘占用相关。相比单纯的文件列表,这种展示方式更容易让人发现占用空间特别大的目录。
例如,开发者发现主目录占用不断增加,可以通过树图观察源码仓库、依赖目录、编译输出和缓存分别占用了多少空间。普通用户也可以用它检查下载目录、媒体文件和其他大型文件夹。
树图支持逐层深入查看。用户可以通过鼠标滚轮、键盘方向键或回车进入目录,再返回上一级继续比较其他区域。对于层级较深的目录,也可以调整缩放比例和展示深度,避免所有内容同时显示时过于拥挤。
不只是查找大文件,还能理解占用来源
如果工具只能按照文件大小排序,用户仍然需要逐项判断哪些内容值得检查。disktree 还会根据目录名称和部分文件结构对内容进行分类,并使用不同颜色表示代码、工具链、同步文件、媒体、文档和缓存等类型。
这种分类并不是对文件内容进行全面识别,而是根据目录名称和少量结构特征进行判断。因此,颜色更适合作为辅助线索,而不是对文件用途的绝对结论。
此外,界面支持按大小、文件数量和最后修改时间查看数据。按大小浏览可以发现占用空间较大的内容,按文件数量查看有助于识别包含大量小文件的目录,而按修改时间查看则适合寻找长期没有更新的内容。
需要注意,文件很久没有修改,并不意味着它没有价值。对于备份、项目归档和系统文件,仍然需要结合实际用途判断,不能单纯依据颜色或修改时间决定删除。
清理之前可以先标记并检查
disktree 并不是一启动就自动删除文件的清理程序。用户需要先选择扫描范围,查看磁盘占用情况,再标记希望处理的文件或目录。
标记操作可以撤销。选中目录后,工具会将其包含的内容一起纳入待处理范围;如果父目录已经标记,里面的子目录就不能再被单独标记或保留,用户可以先取消父目录的标记,再重新选择更小的范围。
在真正执行清理之前,可以进入审核界面查看待处理列表,并取消不应该删除的项目。对于有回收站支持的本地环境,可以选择移入回收站;如果选择永久删除,程序会再次确认,并展示相关路径和预计释放的空间。
这种先分析、再标记、最后审核的流程,有助于减少误删风险。不过,任何删除操作都不应该仅凭工具给出的空间估算来决定。尤其是开发项目、数据库文件和备份目录,清理前仍应确认文件是否有其他副本,以及是否需要使用对应软件提供的专用清理命令。
磁盘空间统计为什么值得关注
文件的逻辑大小与实际占用的磁盘空间并不总是相同。disktree 默认关注实际磁盘占用,并提供切换到表观大小的选项。
实际占用更适合回答“删除这些文件后,大约能释放多少空间”;表观大小则更接近文件属性或目录列表中常见的文件长度统计。稀疏文件、硬链接和不同文件系统的存储方式,都可能让两种统计结果出现差异。
disktree 还会对硬链接进行去重处理,并默认不跟随符号链接。扫描过程中遇到无法读取的目录时,会将其标记为不可读取,而不是随意估算内容。对于挂载在目录内部的其他文件系统,默认扫描也会保留卷边界,避免将不同卷的占用混在一起计算。
因此,树图中的空间数字适合用于定位和分析,但不应认为每个目录的表观大小都等于删除后能够释放的容量。对于存在挂载卷、快照或特殊文件系统行为的环境,更需要注意统计口径。
通过SSH分析远程服务器磁盘
disktree 除了扫描本地目录,也支持通过 SSH 连接远程主机。用户可以选择远程服务器上的挂载卷或指定目录,再通过树图检查远程磁盘的空间分布。
这一功能适合维护 Linux 服务器的开发者和系统管理员。例如,服务器磁盘告警时,可以查看日志目录、应用数据和构建目录的占用情况,帮助确定后续排查方向。
Linux 发行版的相关构建可以包含远程扫描所需的辅助程序。工具会根据远程系统的架构选择匹配的扫描器,并对部署文件进行校验;按照项目文档,远程扫描不需要通过 sudo 修改服务器配置。若使用不包含内置辅助程序的构建,则需要提前在远程主机安装相应的扫描工具。
远程模式有一项重要限制:它不提供直接删除远程文件的操作入口。用户可以导出待处理路径列表或删除脚本,但必须在执行前自行检查脚本内容,并确认目标服务器身份和待删除路径。远程扫描的结果只是清理线索,不代表所有被标记的内容都应该删除。
poxiaoxi博客
精彩评论