macOS自动创建的Time Machine本地快照需手动清理才能释放空间,可用sudo tmutil listlocalsnapshots /或/System/Volumes/Data查看,逐条执行sudo tmutil deletelocalsnapshots命令删除,禁用则用sudo tmutil disablelocal。

macOS 自动创建的 APFS 快照不会自动删除,必须手动清理才能释放空间——尤其是 Time Machine 本地快照,常驻数GB甚至数十GB,且不显示在访达中。
确认当前有哪些本地快照
快照藏得深,diskutil apfs listSnapshots / 只能列出根卷(通常是 /)上的快照,但 macOS 实际可能在多个 APFS 宗卷(如 Macintosh HD - Data)上生成快照。更可靠的方式是用 Time Machine 工具命令:
- 打开终端,运行
sudo tmutil listlocalsnapshots /,输入密码后会列出所有带时间戳的本地快照,例如com.apple.TimeMachine.2024-05-12-234521 - 若返回
No local snapshots for volume '/',不代表没有快照——可能是快照挂在其他宗卷上,可尝试把/换成/System/Volumes/Data再试一次 - 注意:
tmutil只识别 Time Machine 创建的本地快照;系统更新或安装器留下的快照(如Preboot相关)需用diskutil apfs listSnapshots单独查
安全删除指定本地快照
不能批量删,也不能删系统正在依赖的快照(比如刚备份完还没同步到外置盘的),否则可能破坏 Time Machine 连续性或导致恢复失败:
让 macOS 自动化像说话一样简单 —— 用代码控制你的 Mac,无需学习 AppleScript 系统要求 macOS 14+ (Sonoma) Python 3.9+ 需要开启:辅助功能 + 屏幕录制权限
- 逐条执行
sudo tmutil deletelocalsnapshots com.apple.TimeMachine.2024-05-12-234521,每删一个等几秒再删下一个 - 删完立刻运行
tmutil listlocalsnapshots /验证是否消失;也可用df -h对比/的可用空间变化 - 不要用
diskutil apfs deleteSnapshot直接操作——它绕过 Time Machine 管理逻辑,可能留下元数据残留,后续tmutil命令会报错或失效
防止快照反复堆积的实用控制点
macOS 不提供图形界面开关,但可通过禁用本地快照机制来治本(仅建议空间长期紧张、且有稳定外置 Time Machine 备份的用户):
- 关闭本地快照:
sudo tmutil disablelocal,执行后系统不再为 Time Machine 创建本地快照 - 开启本地快照:
sudo tmutil enablelocal,恢复默认行为 - 注意:
disablelocal不会删除已有快照,必须先手动清空;且该设置不影响 iCloud 或其他备份工具的行为 - 如果你依赖“快速恢复最近文件”功能(比如误删后从本地快照恢复),不建议长期关闭
真正卡住空间的往往不是单个快照,而是连续多日未同步的快照链——它们互相引用,删中间一个可能让前后都失效。最稳妥的做法是:先确保外置 Time Machine 磁盘已连接并完成一次完整备份,再集中清理本地快照。操作前别跳过 listlocalsnapshots 验证步骤,名字拼错一个字符就会提示“no such snapshot”,但空间纹丝不动。










