如何删除 Mac 本地 Time Machine 快照
删掉一部 20 GB 的导出,清空废纸篓,可用空间却几乎不动。第一反应往往是装清理工具。更常见的情况是:启动卷上的本地 Time Machine 快照还钉着那些数据块。系统设置里的存储空间把效果揉进系统数据或笼统的「可清除」数字,所以你已经做完该做的事,灰色长条仍旧很大。
这是一篇可复现的说明:APFS 写时复制如何钉住块、怎样用系统命令测量快照、tmutil 实际改什么,以及如何在不动真正备份盘的前提下腾空间。读完后,你应能在几分钟内区分「快照钉住」和「真有大文件夹没找到」。
错误心智模型
很多人把可用空间理解成「看得见的文件之和」。在 APFS 上,更接近「没有任何引用的块」。文件可以在 Finder 中消失,但其数据区段(extent)仍可能被快照引用。只要最后一个引用还在,df 就会继续把这些块算作已用。
口头上常混着三种数:
| 数字 | 回答的问题 |
|---|---|
| Finder / 应用显示的「大小」 | 你仍能看见的命名文件的逻辑大小 |
df 的已用 / 可用 |
挂载文件系统按记账规则报告的结果 |
| 存储里的「可清除」 | 系统估计能回收的混合池上界 |
可清除不是文件夹。它可以包含本地快照、部分缓存、可驱逐的云内容,以及记账余量。工具若承诺「释放 47.2 GB 可清除」却不给出前后 df,就是在猜。
机制:写时复制与快照
Time Machine 创建本地快照时,卷上记录的是当时 extent 的冻结视图。之后的写入分配新块;旧块在仍被快照需要时继续存活。删除文件只去掉现行卷上的指针。
所以这个序列很常见:
- 用
df -h /记下可用空间 - 删除一个你可控的大文件,并清空废纸篓
- 可用空间几乎不动
tmutil listlocalsnapshots /仍有条目- 变薄或删除本地快照后,可用空间上升(有时要等几分钟)
Apple 把本地快照写成自动管理:在外接备份之间创建、短期内保留,并在需要空间时变薄。它们方便在未接备份盘时恢复近期版本,不是外接盘上完整 Time Machine 历史的替代品。
本地快照名称通常类似:
com.apple.TimeMachine.2026-07-28-091530.local
.local 后缀一般表示这是盘上的本地快照,而不是备份目标上的条目。
本地、外接与其他快照
| 类型 | 位置 | 怎么处理 |
|---|---|---|
/ 上的本地 TM 快照 |
启动卷 | 空间紧时用 tmutil 变薄 |
| Time Machine 备份 | 外接或网络卷 | 真正历史;不要为内置盘空间抹掉 |
| 其他 APFS 快照 | 同卷,命名不同 | 只有确认所有者才可删 |
| iCloud 优化存储 | 云端 + 本地物化 | 驱逐策略,不是 tmutil |
diskutil apfs listSnapshots / 的范围可以大于仅 Time Machine。其他软件也能建 APFS 快照。不要用不明「优化器」乱删非 TM 快照。
实验:先测量,再删除
打开终端,记下基线。数字要写下来,靠记忆会骗人。
date
df -h /
tmutil listlocalsnapshots /
diskutil apfs listSnapshots /
diskutil apfs list
怎么读输出
listlocalsnapshots 为空。 问题不在本地 TM 快照。用 du 或树图映射文件夹(找大文件),再看缓存、照片、Docker 或设备备份。
有快照且空间紧张。 钉住很说得通。进入变薄,再复测。
diskutil apfs list 显示容器里有多个卷。 空闲在容器级共享。可能出现「某个卷标签看着满、容器其实还有空间」或反过来。始终看容器空闲,不要只看启动卷标签。
权限错误。 终端可能没有完全磁盘访问去读部分受保护树。这是访问问题,不代表磁盘是空的。
一次可控实验
想在自己机器上证明机制:
- 记下
df可用字节 - 把一个可重建的大文件(例如可再下载的磁盘映像)拷到内置卷,再删掉并清空废纸篓
- 几秒内再比一次
df - 列出快照
- 若空间几乎不动且仍有快照,变薄,等两分钟,再
df
这样就分开了「Finder 里文件没了」和「块已可给新写入使用」。
tmutil 能做什么
先让系统变薄
可用空间只是略紧时,继续用机器即可。装更新、写大文件,或磁盘本身偏满,常会促使系统丢掉最旧的本地快照。这条路径副作用最少,也更能保住较新的恢复点。
按目标空闲量变薄
tmutil thinlocalsnapshots 可请求系统从本地快照回收最多一定量空间。参数随 macOS 版本略有差异,以本机 man tmutil 为准。含义是「尽量从本地快照腾出最多 N 字节」,不是「只删某一个小时」。
适合安装程序需要余量、又仍想尽量保留较新本地恢复点时。
删除该卷上的本地快照
磁盘已经很满,且列表里有条目时:
tmutil deletelocalsnapshots /
部分版本按日期名删除单个本地快照,而不是单一的斜杠形式。以当前系统文档为准,然后务必重列:
tmutil listlocalsnapshots /
df -h /
可用空间可能在数秒到数分钟内上升。APFS 可能异步释放 extent,间隔几分钟再测一次。
不要与这些混淆
- 对备份目标使用
tmutil delete会删真正备份历史,风险更高 - 在 Finder 里删
/.MobileBackups不是受支持的清理路径;用tmutil或系统回收 - 关掉 Time Machine 不是腾本地快照空间的前提,还可能丢掉仍需要的备份策略
- 需要 root、却说不清 APFS 模型的第三方「快照优化」增加风险,也教不会你用
df复核
用一个例子判断
假设周末剪了不少视频:
- 存储显示系统数据约 120 GB,「可清除」写着最多 40 GB
- 你删了 25 GB 导出并清空废纸篓
df可用大约只涨了 2 GBtmutil listlocalsnapshots /里还有最近一天的多个.local
被删导出的大部分仍被本地快照引用。下一步是变薄本地快照,不要随机清空 ~/Library。
在 tmutil deletelocalsnapshots /(或一次成功的 thin)之后:
- 快照列表变空或变短
df可用在几分钟内涨出几十 GB- 存储里的系统数据数字可能滞后或重新分类;信
df和真实能否装得下东西
若快照列表本来就是空的,可用空间仍不动,就不要再跟快照较劲。问题在别处:现行大文件夹、稀疏文件、克隆、同卷废纸篓,或容器里另一个卷。
变薄后空间仍可能不涨
即使本地快照已经没了:
- 存储估计里大部分其实是其他可清除类(云物化、可再生缓存)
- 稀疏文件与克隆让逻辑与物理大小分叉(总量为何不一致)
- 废纸篓仍占同卷空间
- APFS 容器内另一卷共享空闲池
- 仍有非 TM 快照或备份目标相关数据
这些各有测量路径。快照只是其中一章。
安全前提
激进变薄前:
- 确认外接 Time Machine 或其他近期且打开测过的恢复路径
- 接受:你删掉的中间本地版本,在新快照出现前无法离线恢复
- 优先文档化的
tmutil,而不是给不出前后可用空间差值的工具
本地快照是正常机制。只有在内置卷已满、且刚删除的数据仍被钉住时,它才变得紧迫。
常见错误
追逐系统数据那个数字。 目标是可用容量,以及机器还能更新、还能存文件,不是灰色块好看。
因为内置盘满就抹外接备份盘。 把本地快照和备份历史搞混了。
因为可清除看起来很大就乱删资源库。 可清除不是安全路径地图。
变薄后立刻量一次就下结论。 等一下,再采一次 df。
忽略容器记账。 一个卷标签不是 APFS 的全貌。
工具的边界
磁盘分析工具只能帮你定位当前可见的大目录,不能把系统数据变成一个可整体清空的目录。Mole 将磁盘分析、应用维护和清理前确认整合在原生 Mac App 里。系统数据仍由 macOS 和对应应用管理。快照是否存在、该如何处理,仍应以 tmutil 和前后 df 的读数为准。
若工具提示本地快照,先把它当作线索,而不是精确的可释放承诺。处理后重新测量可用空间,才知道实际结果。
操作顺序
- 确认仍有真正备份路径
- 记录
df -h /与tmutil listlocalsnapshots / - 若有快照且空间紧张,用
tmutil变薄或删除,等待后复测 - 若已无快照,测量文件夹并按归属清理缓存或大型用户文件
- 确认无误后再清空废纸篓
- 再跑之前失败的负载(安装、导出、更新),确认装得下
延伸阅读
- Apple:关于 Time Machine 本地快照
- Apple:macOS 存储空间
- 本站相关:系统数据、释放空间、找大文件
本地快照让 Time Machine 能在启动盘上保留短期恢复点。把 tmutil 与 df 一起看,就能判断「删了 30 GB 却没变化」是不是快照造成的。