DiskTree 解释:可视化您的存储空间占用情况
当”磁盘已满”无法告诉你真正重要的信息时
可用空间很少会消失在一个整洁的文件夹中。软件包缓存和构建输出可能占据开发机器的一个分支。下载的媒体、应用程序日志和旧存储库可能位于其他位置。容量警告确认了压力,但无法告诉你哪个分支值得首先关注——或其内容是否可以删除。

数字列表可以回答这个问题,但比较路径和总数需要集中注意力。空间地图提供了另一种视图:一个超大区域在较小区域中脱颖而出,因此第一项任务变成优先级排序而不是算术。数字仍然很重要。地图使其比例更容易看清。
这种视图对Linux桌面用户和开发人员有帮助,也对决定是否在托管机器上放置图形存储工具的运营商有帮助。本指南解释了DiskTree的视觉语言、其记录的Linux起始路径,以及它适用和不适用的地方。首先,拥挤的目录树需要一张地图。
DiskTree 是什么——以及它不是什么
DiskTree 是一个图形化磁盘使用应用程序,它将目录树转换为 treemap:一个嵌套的马赛克,其中面积表示存储使用情况。您不必逐个读取文件夹总数,而是可以看到哪些区域占主导地位。从那里,您可以导航到它们并建立一个候选列表以供仔细检查。

由 Tobias Lütke 创建,tobi/disktree 项目采用 MIT 许可证,用 Rust 编写。它通过 gpui-omarchy 使用 GPUI 图形框架。Omarchy 是其原始桌面环境,但 版本 v0.10.1 包括 Linux、macOS 和 Windows 构建。本指南专注于 Linux。
DiskTree 首先扫描并可视化存储。然后您可以导航地图并标记候选项以供单独审查。只有在该审查之后,选定的项目才能被移到垃圾箱或永久删除。这个序列将发现与承诺分开:界面组织了要检查的内容。用户仍然需要识别谁拥有数据以及为什么重要。他们还必须决定是否可以恢复。
📝 注意: 本文的描述基于 v0.10.1,发布于 2026 年 9 月 25 日。由于该项目发展迅速,请在遵循版本敏感的说明之前检查 最新版本 及其标记的文档。
如何阅读树状图
将扫描根目录想象为一个仓库。目录是可以包含较小房间的房间,而文件占据其中的地板空间。放大到一个目录就像走进一个房间:视图获得更多细节而不改变层次结构。该界面将这些房间呈现为嵌套矩形,使其比例可见。
WAREHOUSE = SCAN ROOT
/home/user
┌─────────────────────────────────────────────────────────────┐
│ │
│ projects/ [BLUE] media/ [GREEN] │
│ ┌────────────────────────────────┐ ┌───────────────────┐ │
│ │ │ │ │ │
│ │ build/ │ │ videos/ │ │
│ │ ┌──────────────────────────┐ │ │ │ │
│ │ │ / / / / / / / / / / / / │ │ │ │ │
│ │ │ / / Worth inspecting / / │ │ │ │ │
│ │ │ / / / / / / / / / / / / │ │ │ │ │
│ │ │ / / / / / / / / / / / / │ │ │ │ │
│ │ └──────────────────────────┘ │ └───────────────────┘ │
│ │ │ │
│ │ src/ │ .cache/ [PURPLE] │
│ │ ┌──────────────────────────┐ │ ┌───────────────────┐ │
│ │ │ Source files │ │ │ / / / / / / / / / │ │
│ │ └──────────────────────────┘ │ │ / Inspect first / │ │
│ │ │ └───────────────────┘ │
│ └────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
ZOOM → Walk into a room to see its contents.
在默认的大小视图中,瓷砖面积代表已分配的磁盘使用量。在 Linux 上,DiskTree 将其计算为 st_blocks × 512,与 du 对齐,通常比逻辑长度更好地反映可回收空间。表观大小是逻辑字节长度——ls -l 显示的值——并可作为单独的切换使用。
❗ 重要:DiskTree 总计可能与 ls -l 显示的字节长度不同,但两者都不一定有误。在比较总计之前,请确认大小或表观大小是否处于活动状态。
颜色增加了另一层含义。
- 宽泛的颜色标识内容类型,而较浅的阴影表示更深的嵌套。
- 对角线阴影标记可能可回收的内容,例如某些缓存或构建输出。
- 琥珀色根据上下文突出显示选择、主要操作或可回收空间。
这些分类是启发式的:阴影缩小了检查区域,但不能确定决策。

几个文件系统规则会影响总计。DiskTree 默认包含隐藏条目,因此不会省略 ~/.cache 等目录。默认情况下它不跟踪符号链接——对其他路径的引用——并且即使多个名称指向硬链接数据,它也只计算一次。有关实现细节,请参阅标记的 README 的 “它测量什么”部分。
该界面在顶部放置面包屑导航和视图控件。扫描总计、活动过滤器和图例直接位于下方。马赛克占据主要区域。侧面板显示当前选择和”值得一看”的候选项。它还跟踪标记的项目并比较当前与预计的可用空间。面包屑是显示您的位置并让您在层次结构中上下或横向移动的路径跟踪。
安装前:检查您的环境是否符合要求
DiskTree 的 Linux 构建有三个实际要求:
- 为机器的架构选择发布存档:x86_64 或 aarch64。
- 在 Wayland 或 X11 图形会话中运行它——这是桌面应用程序打开窗口的 Linux 显示系统。
- 使用 GPUI 可以通过 Vulkan 驱动的图形,这是应用程序 UI 堆栈所需的图形接口。
本地图形 Linux 桌面通常提供显示会话,尽管图形兼容性仍然很重要。远程桌面机器也可能提供一个,但需要确认其图像和图形堆栈。仅通过 SSH 访问的标准 VPS 不同:shell 和 root 访问不会创建显示会话或兼容的图形。
❗ 重要提示:Root 访问权限可以解决权限问题;它不提供图形会话或兼容的图形。如果机器仅支持 SSH,请停止此处,继续阅读DiskTree 适用的场景——以及不适用的场景,而不是安装 DiskTree。
预构建存档不需要 Rust 工具链。Rust 1.97 或更新版本仅适用于源代码构建。一旦确认了架构、显示和图形支持,预构建发布是最简便的文档化路由。
最简单的文档化安装路径

对于初学者路径,打开最新的GitHub发布版本并选择x86_64或aarch64 Linux存档。解压它,然后进入提取的目录。从那里,运行捆绑的安装程序:
./install.sh
默认情况下,该脚本在不需要root访问权限的情况下安装~/.local/bin/disktree,并在~/.local/share下添加桌面条目和图标。
如果安装程序报告~/.local/bin缺失于当前shell的PATH中,桌面条目仍可能工作。在更新shell配置之前,使用二进制文件的完整路径:
~/.local/bin/disktree
当图形要求满足时,这应该打开DiskTree;它不会永久更改shell的PATH。
在Arch或Omarchy上,Arch用户存储库提供了更短的路径。配置好AUR助手后,安装用户维护的disktree-bin软件包:
yay -S disktree-bin
这安装了当前在AUR中打包的DiskTree版本。
📝 注意:AUR软件包可能滞后于上游发布。在2026年9月28日,disktree-bin仍被列为0.10.0-1,而GitHub的最新发布版本是v0.10.1。在将软件包描述为最新之前,请验证两个页面。
从源代码构建是高级替代方案,需要Rust 1.97或更新版本。以下命令克隆存储库并运行其安装目标:
git clone https://github.com/tobi/disktree
cd disktree
make install
这在本地编译DiskTree,默认情况下将其安装在~/.local下。发布存档避免了这个构建步骤。
启动 DiskTree 的四种方法

这些命令是替代方案,而不是序列。除了 –help 外,它们打开一个图形窗口而不是生成终端报告。要使用默认扫描根目录(DiskTree 检查的顶级目录),请在没有路径的情况下启动应用程序:
disktree
DiskTree 应该打开一个交互式窗口,以用户的主目录作为扫描根目录。
为了获得有限的初步查看,请为 DiskTree 提供一个您拥有并了解的目录。此示例使用 ~/.cache,您可以将其替换为另一个路径:
disktree ~/.cache
生成的窗口仅限于该树,使视觉语法更容易学习。
要将范围扩大到包含主目录的卷,请使用记录的磁盘选项:
disktree --disk
这并不意味着”扫描每个磁盘”。扫描通常停留在一个卷上,并排除其他挂载点和伪文件系统。无法读取的目录被报告而不是估计。结果比有针对性的扫描更广泛,但不考虑每个挂载的位置。
对于当前选项参考,请向已安装的版本询问帮助:
disktree --help
与扫描命令不同,这会在终端中打印当前选项——比复制的标志列表更可靠,因为项目在不断发展。
从大块到清理候选列表
从聚焦目录开始,在考虑删除前评估比例。最大的区域显示扫描根的大部分已分配使用量所在位置,而不是数据存在的原因。它可能代表缓存或构建目录。它也可能包含下载或旧项目。使用滚轮进入该区域,或选择它并按 Enter。

使用面包屑路径在深入时保持上下文。它显示从扫描根到当前视图的路径,并让你跳转到父级或同级。按 Backspace 或 Esc 向上一级。一旦其父应用或项目变得清晰,一个超大子目录看起来可能会大不相同。
如果马赛克很拥挤,按 / 并输入名称的一部分以突出显示匹配项。此筛选器既不改变扫描根也不删除任何内容。使用所选路径及其大小或份额开始侧面板审查。然后检查文件计数和最后写入信息。对于 Git 检出,面板也可能显示更改、存储或未推送的提交。这些详情可以将一个看似旧的目录变成独特的工作。
“值得查看”最好用作导航队列:它将大的、可能可回收的项目带入视图,以便你可以在树形图和侧面板中检查其上下文。一旦候选项属于候选列表,使用 Space 或 X 标记它。预计的可用空间数字会更新,但删除仍在等待审查。
当候选列表准备好审查时按 c。使用 ? 获取完整的按键参考,而不是记住每个控件。此时,工作流从探索转向明确的提交选择:
Reversible inspection
Choose scope → Scan → Inspect/zoom → Mark → Review projected free space ⚠ → Commit
Trash / delete → Verification
Rescan标记是预览;删除是单独的决定
标记保持可编辑状态。如果你标记一个父目录,DiskTree 会吸收其中已有的标记,该父目录内的子项无法单独保留或重复计数。这可以防止嵌套条目夸大投影的可用空间数字,该数字基于标记的已分配使用量。

审查屏幕是承诺检查点。检查每个路径,取消标记任何不确定的项,并比较当前可用空间与投影的删除后数字。提出四个问题:
- 哪个应用程序或项目拥有这些数据?
- 你是否确认它可以重新生成?
- 存储库是否包含更改、储藏或未推送的工作?
- 是否存在可用的备份,拥有应用程序的清理工具是否会更安全?
⚠️ 警告:“值得查看”、阴影或标记标识一个候选项——而非删除的许可。缓存可能是可重新生成的,而存储库可能包含独特的工作。包存储、日志和托管缓存可能通过其拥有工具进行更好的清理。
两个提交选择在本质上是不同的。移到垃圾箱旨在保持项目可恢复,直到垃圾箱被清空,但垃圾箱不是备份。永久删除具有 rm -rf 语义,需要明确确认。DiskTree 随后重新扫描并报告实际的可用空间增益,这可能与投影不同。
该项目还为高风险目标记录了拒绝保护。DiskTree 拒绝文件系统根目录、扫描根目录和用户主目录。它还保护挂载点、包含它们的目录和命名系统树。符号链接被取消链接而不是被跟随。这些控制减少了明显的危险;它们不会使任意删除安全。有关当前列表,请参阅标记文档的 “它拒绝做什么”部分。
DiskTree 的适用场景和不适用场景
DiskTree 适用于 Linux 工作站和开发者机器,其中空间探索可以清晰地展示存储比例。Omarchy 或 Arch 桌面自然属于这一类。兼容的远程图形会话也可能有效。下表将这些环境与缺乏图形桌面会话的无头机器和自动化作业进行了对比。
环境决策很直接:
| 环境 | 适配度 | 原因 / 后续方向 |
|---|---|---|
| 🖥️ 本地图形 Linux 桌面 | 条件适配良好 | 确认架构和 Vulkan 支持,然后使用 DiskTree 进行交互式检查。 |
| 🐧 Omarchy/Arch 桌面 | 条件适配良好 | 它符合项目的原始工作流,受图形和软件包版本检查的限制。 |
| 🌐 兼容的远程图形会话 | 可能适配 | 在依赖它之前,确认确切镜像上的 Wayland/X11 和 Vulkan 支持。 |
| ⌨️ 标准仅 SSH VPS | 适配度差 | 使用终端原生的磁盘使用工作流,而不是为一个分析器添加桌面。 |
| ⚙️ 自动化或非交互式作业 | 适配度差 | 选择可脚本化的报告和清理控制,而不是 GUI 审查流程。 |
对于仅 shell 的系统,du 提供了无处不在的命令行基准。dust 以现代树形视图呈现磁盘使用情况,而 ncdu 提供交互式终端浏览器。这三个都符合访问模型,无需图形堆栈。
| Dust | Ncdu |
|---|---|
|
|
| 来源:Dust 项目演示,GitHub。 | 来源:Ncdu 截图,官方 Ncdu 网站。 |
📝 注意:AlexHost Ubuntu 远程桌面 VPS 属于正确的托管类别,因为它提供图形访问。
选择 DiskTree 通过兼容的 GUI 进行空间检查。当访问仅限 shell 或工作流必须自动化时,选择终端原生路径。
删除按钮前的地图
完整磁盘警告不必直接导向第一个大项目。相反,应该映射比例、检查所有权和上下文、标记候选项、审查后果、有意识地提交,然后重新扫描。DiskTree 是一个地图和决策辅助工具,而不是关于安全删除的自动判决。
如果该工作流程适合,请从最新 GitHub 版本和官方 README开始,因为该项目正在快速变化。无论存储是本地还是托管,请选择与您访问机器方式相匹配的诊断工具。


