# 最好的 Mac 清理工具，按判断错了的代价来排

> 两款都诚实的清理工具对同一块盘报出 8 GB 和 47 GB，差别来自 APFS 克隆和硬链接被怎么计算。分辨它们的一份清单，以及 Mole、CleanMyMac、AppCleaner、DaisyDisk 和 OnyX 各自到哪里为止。

Published: 2026-08-22

这个品类里的每一篇盘点，排序依据都是工具号称能删掉多少，这个坐标轴是错的。一款清理器清出 40 GB 却顺手带走了离线模型库，比另一款只清 12 GB、但能说清每一条动过的路径要糟糕得多，知道什么不能碰才是产品本身。

所以这份清单换了一个问题来排序：当工具判断错了，代价有多大，你多久能发现。方法比清单更重要，因为你最后真正要评估的那款，可能根本不在上面。

## 为什么「清出多少垃圾」的数字没有可比性

两款都很诚实的工具，同一个下午扫同一块盘，一个报 8 GB，一个报 47 GB，谁都不必撒谎。差距由四件事决定，而这四件事在那个数字里全都看不见。

**是否把应用马上就会重建的缓存算进去。** 缩略图或字体缓存在下次启动几秒后就会重新生成，清它是借，不是收回，算进总数会把数字撑大，代价是启动慢一次。两种做法都站得住，但没有哪款工具会标明自己选了哪一种。

**是否把可清除空间算进去。** macOS 报出来的可用空间等于空闲空间加上可清除的磁盘缓存，系统也没提供任何受支持的逐文件清单能加总出那个数字，所以工具要是承诺能精确释放多少可清除空间，就是把一个估算说成了账目，而这本账它手里并没有。原理见[什么是可清除空间](https://mole.fit/zh/blog/what-is-purgeable-space-on-mac)。

**是否把 APFS 克隆重复计算。** 在 APFS 上，一份副本可以和原文件共享数据块，直到其中一边被修改，这件事可以自己看一眼：

```
df -k /System/Volumes/Data | tail -1
cp big.dat plain-copy.dat
cp -c big.dat cloned-copy.dat
df -k /System/Volumes/Data | tail -1
du -sh .
```

拿一个 200 MB 的文件实测，普通副本从卷上拿走了 204800 KB，克隆只占 8 KB。随后 `du -sh` 对这个目录报出 600M，而容器实际只让出了大约 400 MB，因为逐文件记账仍然把完整分配量算在克隆头上，`stat -f "%z %b" cloned-copy.dat` 报出的 409600 个块和原文件一模一样。任何按逐文件大小求和的扫描器，都继承了这套算术。

**是否把硬链接重复计算。** 一个 inode 可以挂很多个名字，`du` 只在单次调用内按设备号和 inode 去重，跨两次调用就去不掉了：

```
mkdir a b && mv big.dat a/ && ln a/big.dat b/link.dat
du -sh a b           # 200M and 0B, the shared bytes counted once
du -sh a; du -sh b   # 200M and 200M, the same bytes counted twice
```

把每个类别分开走一遍、再把小计相加的清理器，跑的是第二行不是第一行。包管理仓库和开发目录里到处是链接内容，所以在相信任何总数之前，`find <dir> -type f -links +1` 值得先跑一遍。

<figure class="blog-diagram">
  <img src="https://mole.fit/img/blog/junk-total-inputs.webp" width="1360" height="454" loading="lazy" alt="同一块磁盘喂给两款清理器，报出的垃圾总量差别很大，中间夹着四个输入：是否计入应用马上重建的缓存、是否计入可清除空间、是否把 APFS 克隆按完整分配量记账、以及硬链接的字节是否每个名字都算一遍。">
  <figcaption>两个总数之间的差距通常是定义不同，不是能力不同，小的那个数字，可能只算了它真能还给你的部分。</figcaption>
</figure>

比较两个总数，比的是两套定义，真正可比的是下面那份清单：路径、归属和大小，一条一条看。

## 这份清单问的是机制，不是感觉

每个问题背后都挂着一种失败，产品页答不上其中一条，这本身就是答案。

1. **删之前会不会显示路径、归属和大小？** 三者缺一，就没法复核这个决定，也没法只否掉其中一部分，写着「系统垃圾」再配一个数字，那是分类，不是清单。
2. **分不分得清缓存和状态？** `~/Library/Caches/<bundle id>` 通常可以再生，`~/Library/Application Support/<app>` 经常不行，里面是许可证、本地数据库和配置数据。浏览器配置两样都有，还挨得很近，把整个资源库一视同仁的工具，迟早会拿错那一半。
3. **会不会把决定权交还给自己记引用的应用？** 内容寻址的仓库会在不同条目之间共享数据块，只有拥有它的工具知道哪个块还被引用着，`brew cleanup` 和 `docker system prune` 就是为此存在的，而在这种仓库里按时间删东西，会顺手弄坏那些还指着它的条目。
4. **普通删除能不能恢复？** 废纸篓和 `unlink` 释放的是同样的字节，最坏情况却完全不同。对跳过项和失败项闭口不谈，也意味着报出来的总数从没和真正移动的东西对过账。
5. **它要完全磁盘访问做什么，什么时候要？** 这个需求是真的，一个非特权进程连 stat 都做不到的目录，贡献值是零，看起来和空目录一模一样。信号藏在顺序里，什么都还没给你看就先要权限，等于先要一份还没挣到的信任。
6. **macOS 变了之后，它的规则多久跟上？** OnyX 为每个 macOS 大版本单独出一个构建，是这件事最清楚的公开证据：维护行为是绑在系统版本上的。更新日志比功能列表更能回答这个问题，而一份只覆盖当前大版本的授权，等于告诉你下一轮这份工作该由谁买单。

## 一个测试，就能分出用心的清理器和只会对名字的工具

装同一家厂商的两款应用，只卸掉其中一款，然后看这个工具会不会把共享的 `Application Support` 父目录列成删除候选，共享的 group 容器也一样，那是同一开发者旗下多款应用共用的沙盒目录。

微软 Office 是最容易复现的例子，因为它的结构是公开的。Word、Excel 和 Outlook 各自在 `~/Library/Containers` 下有一个目录，而 `~/Library/Group Containers` 里放着三个共享目录，分别叫 `UBF8T346G9.ms`、`UBF8T346G9.Office` 和 `UBF8T346G9.OfficeOsfWebHost`。那个前缀是厂商的团队标识，不属于任何一款应用，Outlook 的邮件恰恰就存在这套共享目录里。只卸掉 Word，一个按名字匹配的工具看见目录名里有 Microsoft，就把它端上来了。

这种失败是结构性的，不是粗心。按显示名匹配能找到带厂商名的目录，却分不出套件里哪一款应用拥有它；按 bundle 标识符也就是应用的唯一 id 匹配，对单应用路径很准，对 group 容器却什么都找不到，因为那个名字被故意设计成不属于任何一款应用。两种策略都答不上来，能答上的只有一种检查：还留在机器上的应用里，有没有谁认领这条路径。

会把共享父目录列出来的工具，是在对名字，把它放过的工具，是在推断归属。这个差别永远不会出现在功能对比表里，却能预测它哪天碰上作者从没见过的东西会怎么做。

<figure class="blog-diagram">
  <img src="https://mole.fit/img/blog/leftover-attribution.webp" width="1360" height="454" loading="lazy" alt="同一厂商的两款应用共用一个支持目录和一个 group 容器，只删掉其中一款，共享的父目录仍然属于留下来的那款。">
  <figcaption>名字匹配和归属推断给出的清单一模一样，直到两款应用共用一个父目录，分歧就在那里，数据也在那里。</figcaption>
</figure>

## 按各自擅长的活来看这几款

### Mole，适合先审再一次清干净

<figure class="blog-diagram">
  <img src="https://mole.fit/img/en/clean.webp" width="2584" height="1741" loading="lazy" alt="Mole 展示一次经过审核的缓存清理，每个候选项都按路径和大小列出，操作结束后报出实际释放的空间。">
  <figcaption>在 Mole 里发现和删除是分开的两步，眼前这份清单没被你确认之前，什么都不会动。</figcaption>
</figure>

[Mole](https://mole.fit/zh/) 覆盖了原本要装五个应用才够的五件事：缓存清理、带残留发现的应用卸载、系统维护、磁盘矩形树图和实时硬件状态，一个原生应用外加一个菜单栏面板。

排它第一，是因为它做事的顺序。先扫描，把每个候选项连同准确的路径、归属和大小一并展示，拿不准的一律不勾选，所以默认动作永远是更小的那个。普通删除进废纸篓而不是直接 `unlink`，出了错是从废纸篓里拖回来，不是从备份里恢复，批量操作还会分开报出跳过了什么、失败了什么。全部在本地跑，不上传也不做遥测，每一次文件操作都会追加到 `~/Library/Logs/mole/operations.log`，所以它做过什么是一份你能读的文件，不是一个你只能信的数字。

真正的功夫在保护清单里，第三个问题在那里落成了一条条具体路径。`~/.ollama/models`、`~/.lmstudio/models` 和 `~/.cache/huggingface` 永远不会成为候选，因为这些工具在模型之间共享内容寻址的数据块。`~/.codex/sessions`、`~/.claude/projects` 和 `~/.grok/sessions` 下的会话记录，不管多旧都不碰。`Library/Caches/com.apple.e5rt.e5bundlecache` 名字里带着 cache，照样排除，因为里面是 Apple 神经网络引擎编译好的模型。这些扫描器推不出来，得一条路径一条路径地定下来。

Mac 上风险最高的那一项也是同样待遇。`/macOS Install Data` 里的安装包体经常有 12 GB，看着特别理想，可在更新做到一半时删掉它，机器就开不了机了。只要有更新等着装、包体是最近 14 天内写下的、或者安装器正在跑，这一行就不显示，信号读不到时按有风险处理，同样不显示。真到删除那一刻，特权脚本会把这三项检查重跑一遍，不再成立就以非零状态退出。

清理的做法是：打开「清理」，等扫描结束，读那份分好组的结果，把想留的取消勾选，确认。退役一款应用：打开「软件」，选中它，Mole 会把它安装时散出去的缓存、偏好设置、启动代理、日志和容器收拢起来，每一项带路径和大小，旁边还有它的登录项和后台服务。同厂商的兄弟应用还在用的共享父目录，它不会端上来，上面那个测试就这样答在了产品里，不是答在一句宣传里。

价格是 $19 买断，终身免费更新含大版本，一份授权两台 Mac，需要 macOS 14 或更高版本，14 天可退。扫描免费，每个付费工具还能免费用两次，所以掏钱之前这些都能自己验一遍。

它的边界说白了：不是恶意软件处置，不是备份，也替代不了带驱动、VPN 组件或系统扩展的软件自带的卸载器。它不删模型权重，也不删 AI 聊天记录，那些留给记着它们的工具自己管。

### CleanMyMac，适合想要一条引导流程的人

MacPaw 的 [CleanMyMac](https://macpaw.com/cleanmymac) 是这里做得最精致的产品，多数人说「Mac 清理工具」时想的就是它，把清理、卸载、恶意软件扫描和性能工具打包在一条引导流程后面。

MacPaw 目前订阅和买断都提供，它的[购买说明](https://macpaw.com/support/cleanmymac/knowledgebase/purchase-options)讲清了关键区别：订阅包含当前大版本的更新，也包含升级到未来的大版本，买断只包含当前大版本的更新和修复。MacPaw 还写明了自家商店、App Store 和 Setapp 三个渠道的功能差异，所以版本也要一起比。引导流程对不想读路径清单的人是实打实的好处，对想读的人则是成本。更长的对比见 [CleanMyMac 替代品](https://mole.fit/zh/blog/cleanmymac-alternative)。

### AppCleaner，适合退役单个应用

FreeMacSoft 的 [AppCleaner](https://freemacsoft.net/appcleaner/) 免费、可自愿捐赠，只做一件事：把应用拖到它窗口上，它找出这款应用安装时散出去的文件。正是这个窄范围让它活过了十年，官网目前标注 3.6.8 版从 Mojave 一直兼容到 Tahoe。它给出的匹配要先审再接受，带驱动或系统扩展的软件，先走厂商自己的卸载器。

### DaisyDisk，适合看清空间去哪了

[DaisyDisk](https://daisydiskapp.com/) 把卷画成一张旭日图，至今仍是决定该去查哪个目录最舒服的方式。按它的[价格说明](https://daisydiskapp.com/support/pricing/)采用一次性授权，具体条款以那里为准。它是地图不是清理器，不会告诉你一个很大的目录能不能删。同一块盘的两张地图为什么对不上，见[怎么选磁盘分析工具](https://mole.fit/zh/blog/daisydisk-alternative)。

### OnyX，适合执行叫得出名字的维护操作

Titanium Software 的 [OnyX](https://titanium-software.fr/en/onyx.html) 免费，把维护操作做成直接的开关而不是一堆建议。厂商对分系统版本的构建说得很直白：「每个操作系统大版本都有对应版本的 OnyX，请使用正确的版本，不要试图使用为更早系统准备的版本。」只跑你已经能叫出名字的那一项。

### 免费的命令行路线

习惯终端的话，这里面很多事都是免费的。`du -sh *` 按大小排序就能回答重量在哪，`ncdu` 让这件事变成可交互的，[Mole CLI](https://github.com/tw93/Mole) 通过 `brew install mole` 安装，采用 GPL-3.0 免费开源，覆盖清理、卸载、优化、分析和状态。每条破坏性命令都支持 `--dry-run`，它和 Mac 应用共享同一份保护清单与同一份操作日志。更全的免费工具集见[免费 Mac 清理工具](https://mole.fit/zh/blog/free-mac-cleanup-tools)。

## 在真正要紧的那条轴上怎么比

| 工具 | 删除前是否显示路径 | 默认是否可恢复 | 是否保护自记引用的仓库 | 授权 |
|---|---|---|---|---|
| Mole | 是，每个候选项带路径、归属和大小 | 是，废纸篓加一份操作日志 | 是，有明确的保护清单 | $19 买断，两台 Mac，终身更新 |
| CleanMyMac | 部分，按类别分组 | 因模块而异 | 未作为一个类别写明 | 订阅，或当前大版本买断 |
| AppCleaner | 是，针对拖进去的那款应用 | 否，直接删除 | 不适用，只管单个应用 | 免费 |
| DaisyDisk | 是，它本身就是地图 | 是，删除进废纸篓 | 不适用，没有规则 | 一次性，以厂商页面为准 |
| OnyX | 否，操作只有名字，没有逐项清单 | 否 | 不适用 | 免费 |

## 哪些承诺它们都不该给

软件修不好存储健康度，加不了内存，也解不开温度墙。SSD 磨损是闪存的物理属性，内存是一块要么有要么没有的零件，降频是固件在保护机器，号称能让硬件变快的工具，做的是营销不是工程。一个很大的「发现总量」同样不是质量的证据，到这里你已经知道为什么，那是一个定义。而一款产品要是按结果看着有多吓人来收钱，它的激励就是背着你的。

恐吓式套路活在销售流程里，不在代码里。是它找上你的，通过弹窗或者捆绑安装包，而不是你自己发起的一次搜索。它在扫描还没结束时就报出一个吓人的数量，或者在你还没授予它得出这个结论所需的权限之前就报了。掏钱解锁的是它到底找到了什么，不是让它动手，所以锁着的那一屏只有一个总数，别的什么都没有。再加上没有具名的公司、没有版本历史，也没有办法读到某个操作到底做了什么。剩下的部分，Apple 关于[识别和避免诈骗](https://support.apple.com/en-us/102568)的说明讲得更全。

## 什么时候不该买任何东西

磁盘剩余空间宽裕，又没有诊断出来的问题，这些一个都不需要。macOS 在压力下已经会管理可清除数据和本地快照，一次不解决任何症状的清理，是白担风险。机器是慢不是满的时候，删文件治不好，因为一个 CPU 死循环或者一堵温度墙不是由字节构成的。值得掏钱的是重复这件事，不然每个月都得把四款工具拼一遍，这个问题在比较任何产品之前就该想清楚：[是否需要 Mac 清理工具](https://mole.fit/zh/blog/do-you-need-a-mac-cleaner)。

## 常见问题

### 总体上哪款 Mac 清理应用最好

对大多数只想装一个应用而不是四个的人，[Mole](https://mole.fit/zh/) 值得先试：任何东西移动之前，它把每个候选项的路径、归属和大小都摆出来，普通删除进废纸篓，保护本地模型库这类自记引用的仓库，每次操作都写进一份你能读的日志文件，两台 Mac $19 买断。没有授权也能扫描，所以可以先拿它的结果清单来对照上面这段描述。

### 为什么两款 Mac 清理工具报出的垃圾量完全不同

因为它们回答的问题不一样。一款可能把应用下次启动就会重建的缓存算进去，另一款没算，一款可能把 macOS 从未承诺交出来的可清除空间也算进去，两款都可能把一个 APFS 克隆或一个硬链接文件按完整大小在两个地方各算一遍。比候选清单，别比总数。

### Mac 清理应用用起来安全吗

用心做的那些是安全的，判断方式是机械的，不看口碑：删除之前会不会显示准确的路径和归属，普通删除能不能恢复，遇到自己记引用的仓库会不会交还给对应应用去处理。三条都做到的工具可以放心跑，只给你一个总数的，评价再好也不行。

### 有好用的免费 Mac 清理工具吗

有好几款，它们是窄，不是残。退役应用用 AppCleaner，画磁盘地图用 GrandPerspective，执行叫得出名字的维护操作用 OnyX，终端里用免费开源的 [Mole CLI](https://github.com/tw93/Mole)。完整对比在[免费 Mac 清理工具](https://mole.fit/zh/blog/free-mac-cleanup-tools)。

## 从哪里开始

先拿共享父目录那个测试去试你正在考虑的那款，然后按活选工具：问题是空间去哪了就用地图，退役应用就用残留扫描器，已经知道要执行哪一项就用具名操作，而当每个月拼装四款应用本身已经成了真实成本，就用 [Mole](https://mole.fit/zh/) 这类整合工具。一对一的对比在 [CleanMyMac 替代品](https://mole.fit/zh/blog/cleanmymac-alternative)、[AppCleaner 替代品](https://mole.fit/zh/blog/appcleaner-alternative) 和 [DaisyDisk 替代品](https://mole.fit/zh/blog/daisydisk-alternative)。

---

Canonical HTML page: https://mole.fit/zh/blog/best-mac-cleaner-apps
Blog index for agents: https://mole.fit/zh/blog/llms.txt
Site index for agents: https://mole.fit/llms.txt
