Mac 清理工具永远不该删什么
评价一款 Mac 清理工具,关键不在它声称能清出多少 GB,而在它拒绝动什么,以及这个拒绝是写在删除路径上强制执行的,还是只印在宣传页上好看。
macOS 自己已经会在压力下回收一部分缓存、把本地快照变薄,第三方清理的真实风险其实是误标:聊天记录、邮件库、项目状态、云镜像和离线模型,在一只只按大小排序的扫描器眼里,全都只是「很大的文件夹」。如果还在犹豫要不要用清理工具,先看是否需要 Mac 清理工具。
短答案:值得信任的清理工具会拒绝碰聊天与邮件存档、本地 AI 模型、进行中的项目状态和云同步目录,而且这个拒绝必须写在删除路径里强制执行;文件夹名里的「Cache」只是命名习惯,不是安全标签。
先把每个候选归成三类
| 类型 | 例子 | 默认 |
|---|---|---|
| 可再生 | HTTP 缓存、GPU 缓存、派生构建产物、多数日志 | 退出所有者且路径明确时可以清 |
| 重建代价高 | 包注册缓存、本地 AI 权重、DeviceSupport | 需要审核;先预期耗时、流量与许可提示 |
| 不可替代 | 信息、邮件、照片、文稿、聊天、凭据 | 绝不能一键当垃圾清掉 |
把这三类压成同一份「安全可删」的列表,不是简化,而是把本该由你做的决策藏了起来。
为什么叫「缓存」不等于安全
磁盘上的 Cache 只是一个目录名,不是安全证明,住在里面的东西真实形态包括:
- 浏览器配置下的 HTTP / 图片缓存通常可以再生,代价只是首次加载变慢
- Code Cache / 字节码缓存会在下次启动时重建,代价是 CPU 时间,不是丢数据
- 剪贴板历史图片可能正好住在厂商的 Caches 树下,清掉它的体验就像丢了个人数据
- 编译模型 / 神经网络引擎存储如果在消费者运行时删除,可能直到重启之前都会破坏识别
tmp/Temp里有时放的是聊天检查点、未保存的草稿或安装状态,名字像临时文件,内容未必是垃圾
删掉任何名字叫 cache 的东西之前,先问三句:
- 谁写?
- 重启后谁读?
- 我错了怎么恢复?
这三句只要有一句答不上来,就先别动。
Apple 的平台安全指南解释了系统完整性、数据保护和应用边界;控制文件访问则说明隐私权限如何限制应用。清理器拿到更高权限,不会让未知文件自动变安全,只会让误判影响更大。
绝不当作垃圾
个人资料库与通讯
- 照片图库包,以及它内部的数据库,删掉就是真的没了
- 邮件数据、信封索引与附件,服务器上没副本的就找不回来
- 信息数据库与附件(含 iCloud 信息),同样不可再生
- 备忘录、语音备忘录这类个人内容
- AI 聊天记录与项目历史(
sessions、file-history、agent 项目树),对话不会再生
缓存会再生,删掉的对话与图库不会,所以优先用导出功能和所属应用自己的保留控制,而不是任何批量清理器。相关:信息占盘、邮件占盘、照片占盘。
文稿、云镜像与同步树
- 文稿、桌面与项目根目录,这些是真正的用户数据
- iCloud 云盘 / Mobile Documents:本地删除可能扩散到其他设备
~/Library/CloudStorage/…下的厂商目录:一律按多设备影响处理
能列出云路径却不标注「会同步」的清理器是不完整的,默认勾选它们的则是不安全的。
凭据、隐私与系统策略
- 钥匙串、浏览器登录库与各类 token
- TCC 与隐私授权状态,决定哪些应用能碰什么
- 配置描述文件、MDM 与安全代理状态
- 壁纸与系统媒体缓存:几乎不省空间,却可能让设置界面一片空白
运行中所有者与安装进行中
- 仍在打开或正在更新的应用的缓存,所有者可能正在往里写
- 启动过程可能仍然依赖的系统安装暂存文件
- 构建中或
brew运行中的包管理存储,删了就是中途拆台
共享容器与多应用厂商
- 同一开发者套件之间共享的 group 容器
- 厂商仍有任一产品在用时的父目录
看起来像垃圾、常常不是
| 看起来像垃圾 | 常常实际是 |
|---|---|
Library/Application Support/… |
应用数据库、离线包、许可状态等真数据 |
Containers/… |
应用的完整沙盒主目录,不是缓存 |
Group Containers/… |
套件共享数据 |
带产品名的 Caches/… |
剪贴板历史、模型缓存、站点数据 |
…/tmp 或 …/Temp |
检查点、草稿、安装进行状态 |
很大的 .db / .sqlite |
往往就是主用户数据 |
node_modules、Pods、.venv |
仅在有网络和正确锁文件时才可重建 |
开发者存储有另一套独立规则(开发缓存、AI 模型),浏览器配置的体积问题见浏览器占盘。
清理工具应如何执行
可信的清理器会把安全做成分层的几道关:
- 扫描阶段: 被禁类别从一开始就根本不出现在列表里
- 默认勾选: 仅供审核的行一律默认不选
- 删除时再校验: 即使 UI 已经展示过路径,也仍要复核身份、符号链接与白名单,审核期间应用又启动时,检查与使用之间的时间差很重要
- 可恢复落点: 普通用户文件进废纸篓,而不是静默
rm - 结果记账: 已回收 / 已跳过 / 失败分开统计,路径已不在不算「成功」
宁可因为无法确认而漏掉一个候选,也不要在校验失败时删除未知数据。
任何工具都能做的实测
- 在机器上装同一厂商的两款产品
- 只卸其中一款
- 看工具是否提出共享的 Application Support 父目录,或两款仍共用的 group 容器
- 拒绝一切共享项,再看它能否用白话解释为什么这样勾选
说不清归属,就别让它批量删任何东西。
权限也是契约
完全磁盘访问让进程能读受保护的资源库路径,但并不让每个可读路径都变得可删,特权助手则应该窄、带版本、只做固定操作,而不是一个通用 root shell。装之前问清楚三件事:
- 哪些功能真的需要 FDA、自动化或助手?
- 监控功能是否要求常驻采样?
- 收回权限之后,非破坏功能是否仍然可用?
把原则落到工具上
以 Mole 为例,它把清理前的确认和删除时的路径校验放在同一条流程里:
- 可再生缓存与日志可以出现在列表里,个人资料库不会
- AI 聊天记录永不进入清理候选,模型仓库留给 Ollama、LM Studio 或 Hugging Face 自己管
- 浏览器配置与多种包缓存标记为仅供审核或默认不勾选
- 云同步路径会被明确标注,让本地删除成为一个知情选择
- 卸载残留按身份归属,没有明确所有者路径时共享 group 保持保护
- 结果会分开统计已回收、已跳过与失败的字节
当 macOS 或应用布局发生变化时,安全的失败方式是漏掉候选,而不是删除未知数据。
常见错误
把「大」等同于「垃圾」:大小只是排序信号,从来不是安全信号。
按日历清空一切名叫 cache 的东西:健康缓存会以 I/O 与更慢的首次启动为代价回来。
付费才能看将删什么:诚实的工具会先免费展示候选。
相信把跳过与已不存在路径也算进「已清理」的单一成功数字。
实用规则
如果说不清一个文件的用途、所有者与恢复方式,就不要用清理工具删它;用磁盘地图定位重量,用所属应用清理它自己的缓存,可能后悔的内容一律进废纸篓。
决策顺序
- 先说清问题,是磁盘满、应用坏了、还是卸完有残留
- 把数据归类:可再生、重建代价高、还是不可替代
- 有所属应用自带的清理界面时,优先用它
- 审核精确路径,代价高与共享项默认不勾
- 删除进废纸篓,然后复测应用与兄弟应用
- 接受结果之后,再清空废纸篓
延伸阅读
恐吓式清理器的常见话术
下面这些句子本身都不是证据:
- 「查出严重问题」却不给出任何路径
- 「释放 50 GB」却不说明是怎么测量的
- 先弹出报警,再要求付费才能看详情
- 把正常缓存说成病毒或者系统损坏
更可靠的流程会先列出候选与路径,等你确认之后才删除,并让普通删除进入废纸篓。
误删之后怎么减损
如果已经误删,而且东西还在废纸篓里:
- 立刻停止任何继续的清理
- 从废纸篓放回
- 打开所属应用,确认数据是否完整
- 若已清空废纸篓,去查 Time Machine 或其他备份
- 云同步类路径还要检查其他设备是否已传播删除
没有备份时,专业恢复也不保证能找回来,这正是「不可替代」类默认永不进一键列表的原因。
给开发者的额外边界
开发机上 node_modules、Pods、.build、DerivedData 看起来像垃圾,重建成本却是实打实的网络与时间,能再下载不代表应该默认勾选,具体边界见开发缓存与清除开发缓存。
AI 会话目录即使体积不大,也不应该进入清理候选,因为对话不可再生,缓存可以。
常见问题
名字里带「Cache」的都能删吗?
不能;有些 app 把用户数据放在类似缓存的名字下,有些缓存要花数小时重建;安全来自知道目录里装的是什么、谁写的,从来不是名字里的那个词。
怎么判断一个清理工具是否真的保护数据?
看强制执行而不是宣传:删除路径拒绝跨越的保护清单、删除前的评审界面、以及走废纸篓的删除方式,这样错了还能捞回来。
清理工具已经误删了重要数据怎么办?
先查废纸篓,评审式工具的删除会送到那里;聊天、邮件这类服务器同步的数据重新同步通常能回来,仅存在本地的数据则可能真的没了,这正是删除前评审的价值。