DaisyDisk 的替代方案怎么选
磁盘分析器只回答一个范围很窄的问题:哪些目录实际占用了空间。两款正常工作的分析器扫描同一个卷,仍可能给出不同总数。
APFS 克隆、硬链接、稀疏文件、本地快照和无权读取的目录,都会以可解释的方式改变结果。因此,选择工具其实包含两个决定:哪种地图最容易读懂,以及你是否明白面前的总数到底计算了什么。
最直观的差别在地图形状
所有工具都从磁盘用量出发,但采用不同的计数和绘图方法。DaisyDisk 使用同心放射环。GrandPerspective 和 Mole 使用矩形树图,每个目录是按大小缩放的矩形。OmniDiskSweeper 展示从大到小排序的列表,ncdu 在终端里绘制类似列表。macOS 自带存储页只有分类堆叠条,不展示路径。
找到项目之后怎样处理,同样重要。「在 Finder 中显示」把决定留给用户,但需要切换应用。直接在分析器中删除,会把全部压力放到恢复路径上。不会经过废纸篓的工具,只应指向你确认可以重新生成的数据。
可以选择哪些工具
系统存储页:经常已经足够
打开「Apple 菜单 > 系统设置 > 通用 > 存储」。Apple 的存储设置说明列出了其中内容:按类别显示已用与可用空间的条形图、各磁盘卷详情,以及「储存在 iCloud 中」「优化储存空间」「自动清倒废纸篓」三项建议。
点击类别旁的信息按钮,可以浏览其中的文件。「文稿」还能按名称、种类、上次访问时间和大小排序。
对于单个明显偏大的文稿或媒体分类,它已经够用,但看不透「系统数据」。Apple 自己的存储说明指出,这个类别由 macOS 管理,用户无法直接控制。当大量空间落在这里,自带页面已经提供了它能提供的全部信息,路径级地图才开始有价值。
DaisyDisk:精致的放射环
DaisyDisk 是 macOS 视觉磁盘分析器的代表,并且仍在积极维护。截至 2026 年 7 月,4.34.2 刚刚发布,前一版 4.34 增加了 APFS 克隆计数。
当前功能包括放射环地图、空格预览、把项目拖入收集器后批量删除、用于读取普通用户无权访问文件的管理员扫描、云盘扫描、快照管理,以及硬链接和克隆检测。它要求 macOS 10.13 或更高版本。
授权为一次购买,可覆盖数台个人 Mac,并提供退款期;当前条款应查看价格页面。
边界来自产品本身的范围:它负责绘制和删除,不知道某个目录是否属于已卸载应用,也不知道某个缓存会在下次启动时重建。数据归属仍由你判断。
GrandPerspective:开源矩形树图
GrandPerspective 在 macOS 上绘制矩形树图已接近二十年,仍在继续发布。3.7.2 于 2026 年 5 月推出,采用 GNU GPL,要求 macOS 11 或更高版本。
除地图外,它还提供多种颜色映射方式,可按名称、扩展名、大小和修改时间显示;也支持过滤、硬链接、云存储分析、带快速刷新的扫描压缩,以及导出图片或文本,并提供十一种本地化。
SourceForge 版本免费,Mac App Store 也销售同一应用,项目说明付费版只是支持开发者的方式。与商业应用相比,界面能看出年代。如果不介意,大多数人到这里就可以停止选择。
OmniDiskSweeper:简单的大小排序列表
The Omni Group 仍把 OmniDiskSweeper 作为免费软件提供。官方说明很直接:从大到小展示磁盘文件,并允许移到废纸篓或打开。它没有地图,这正是优点,一列大小几乎不需要学习。
OmniDiskSweeper 的维护节奏要单独看。它位于 Omni 的附属项目页面,不属于主要产品线,公开下载索引仍有面向旧 macOS 的构建。不过 Omni 博客记录了 2025 年 9 月更新,同月测试渠道发布了要求 macOS 14 或更高版本的 1.16 构建。
它更像一款维护节奏较慢的工具,下载后要确认具体构建与当前 macOS 兼容。
ncdu:适合终端和远程磁盘
ncdu 是采用 MIT 许可证的文本界面磁盘分析器,也是这里唯一能通过 SSH 保持相同工作方式的工具。截至 2026 年 7 月,两条版本线都仍有效:Zig 重写版 2.9.2 发布于 2025 年 10 月,C 版长期支持 1.22 发布于 2025 年 3 月。macOS 可通过 Homebrew 或 MacPorts 安装。
它支持并行扫描、JSON 导入与导出、压缩二进制格式和界面内删除,还会区分表观大小与实际磁盘用量,这正是后文的重要差别。
选择它是为了脚本能力和远程访问,不是舒适。终端浏览器中的删除很难恢复,更稳妥的做法是先用它定位,再通过 Finder 移除。
Mole「分析」页:更大工具集中的磁盘地图
Mole 会为整个磁盘绘制矩形树图,支持单击下钻和面包屑导航。右键可以「移到废纸篓」或「在 Finder 中显示」。删除通过系统废纸篓执行,因此可以恢复;/、/Users 和 /Applications 等导航根目录不能被移除。
无法计算大小的条目不会从总数中静默消失,而是显示标记并允许重试,避免把读取失败误当成零占用。
边界也应说明:授权为一次购买,两台 macOS 14 或更高版本的 Mac;结果缓存 24 小时,因此总数可能暂时过期;Mac 应用不支持 JSON 导出,免费开源命令行版可通过 mo analyze --json 提供。
为什么两款分析器扫描同一磁盘会得出不同结果
下面许多差异都来自扫描器作者合理的计数选择,不过无法解释的差距仍可能是错误。
APFS 克隆。 在 APFS 上用 Finder 复制文件时,数据块不会立刻复制,两份文件会共享底层块,直到其中一份修改。把逻辑文件大小直接相加的分析器会把两份都完整计算,结果可能大于磁盘实际占用。
硬链接。 一个 inode 可以有多个名称。按每个名称计数会放大总数;记录每个 (device, inode) 组合的扫描器能够区分共享字节与独占字节。因此,带有链接内容的软件包缓存和开发目录,在不同工具中可能相差很大。
稀疏文件。 文件表观大小可以远大于已分配块。典型例子是 Docker.raw,它报告很大的虚拟大小,实际占用却小得多。读取逻辑 size 和读取已分配块,会得到不同答案。
快照与可清除空间。 Time Machine 本地快照和可清除数据会占用磁盘卷,但不属于目录遍历器能够访问的任何路径。无论怎样相加目录树,都不会包含它们。因此,分析器总数与 Finder 数字之间的差距,经常就来自这里。
扫描器无权读取的内容。 需要完全磁盘访问或 root 的目录,普通进程无法取得文件状态。危险不在失败本身,而在静默。一个贡献为零的不可读子树,看起来会与空目录完全相同。管理员扫描模式和明确的「未计算大小」标记,就是为此存在。
符号链接。 跟随符号链接会把目标字节算到并不存放它的位置,也可能重复计算同一数据。解析链接但不继续进入,通常是更安全的默认选择。这类差异在开发目录中尤其明显。
扫描方法也会影响结果。使用 fts(3) 或 getattrlistbulk 在应用进程内遍历,作者可以直接控制进度、取消和硬链接去重。调用 du(1) 能复用成熟遍历器及其计数选择,但很难整合细粒度进度和部分失败。一条 du 命令就能报告整棵目录树,并不需要每个目录启动一个子进程。
混合进程内遍历与 du 回退的工具,仍可能继承两套计数模型,总数也会因此出现差异。
快速对比
| 工具 | 地图形状 | 找到项目后的操作 | 授权方式 |
|---|---|---|---|
| 存储设置 | 分类条形图,无路径 | 从分类浏览器删除 | macOS 自带 |
| DaisyDisk | 放射环 | 收集后批量删除 | 一次购买 |
| GrandPerspective | 矩形树图 | 显示或删除,也能导出 | GPL 开源 |
| OmniDiskSweeper | 按大小排序的列表 | 移到废纸篓或打开 | 免费 |
| ncdu | 终端列表 | 原地删除,JSON 导出 | MIT 开源 |
| Mole | 可下钻矩形树图 | 显示或移到废纸篓,保护根目录 | 一次购买 |
按这个顺序查找空间
先看容器。比较 df、APFS 容量视图和系统存储页,判断面对的是真实物理压力,还是快照与可清除空间造成的分类差异。之后再运行分析器,只授予你愿意提供的访问权限,并优先选择会标明不可读区域,而不是把它们静默计为零的工具。
沿最大分支下钻,直到能够说出目录的所有者。执行操作前再用另一种方法比较同一路径,比如 du -sh 或 Finder「显示简介」。数值不一致时,原因通常就在前面的列表中。理解差异后,才能判断空间是否真的可回收。
先删除可替代数据,并把它留在废纸篓中,直到确认相关应用正常。手动流程见如何找出并删除大文件。如果大量空间落在没有路径的类别中,可以继续看系统数据究竟是什么。