macos apfs 本地快照(尤其 time machine 生成的)会锁定空间,需用终端命令管理:先通过 diskutil apfs listsnapshots /system/volumes/data 查看并识别 purgeable: yes 的快照,再用 tmutil deletelocalsnapshots 或 diskutil apfs deletesnapshot 精准删除;紧急时可用 tmutil thinlocalsnapshots 自动精简,重启后验证空间释放。

macOS APFS 文件系统不会自动回收被本地快照“锁定”的空间,必须通过终端命令主动触发。真正释放“系统数据”占用的空间,核心是管理 APFS 快照——尤其是 Time Machine 生成的本地快照,它们常驻数 GB 到数十 GB,却不在访达中显示。
确认快照位置和状态
很多用户执行 tmutil listlocalsnapshots / 返回空,就以为没快照,其实快照大多挂在 /System/Volumes/Data 上(macOS 11+ 标准路径)。正确做法是:
- 先运行
sudo tmutil listlocalsnapshots /,看是否有com.apple.TimeMachine.*开头的快照 - 若为空或报错,立刻改用:
diskutil apfs listSnapshots /System/Volumes/Data - 重点看 Purgeable: Yes 的快照——只有标记为 Yes 的才安全可删
- 注意避开
com.apple.os.update类快照,它们属于系统更新签名卷,删除可能导致无法启动
温和精准删除指定快照
不建议批量清空,尤其当 Time Machine 正在备份或刚完成同步时。按时间戳逐条删更稳妥:
- 从
tmutil listlocalsnapshots /或diskutil输出中复制完整快照名,例如:com.apple.TimeMachine.2026-06-15-082234.local - 执行:
sudo tmutil deletelocalsnapshots com.apple.TimeMachine.2026-06-15-082234.local - 每删一条等 2–3 秒,再删下一条;成功提示为 Deleted local snapshot
- 删完立即再运行
tmutil listlocalsnapshots /验证是否消失
紧急腾出空间:一键精简所有可删快照
当磁盘剩余不足 10GB,或“系统数据”长期卡在 50GB+ 不下降时,用 thinlocalsnapshots 最有效:
- 执行:
sudo tmutil thinlocalsnapshots /System/Volumes/Data 9999999999999999 1 - 数字 1 表示“只保留最少必要快照”,系统会自动跳过活跃、受保护或刚创建未满 24 小时的快照
- 执行后立刻运行
df -h /查看可用空间是否上涨 - 若无明显变化,重启一次再检查更可靠——部分空间释放需内核重新计算共享块
处理异常“僵尸”快照
断电、升级中断或 NAS 失联后,某些快照会变成元数据损坏状态,tmutil 无法识别或删除,常见报错:Stale NFS file handle:
- 先用
diskutil apfs listSnapshots /System/Volumes/Data找到对应 UUID 或全名 - 确认 Purgeable: Yes 后,执行:
sudo diskutil apfs deleteSnapshot /System/Volumes/Data -name "com.apple.TimeMachine.2026-05-22-141002.local" - 更稳妥的方式是用 UUID 删除:
sudo diskutil apfs deleteSnapshot /System/Volumes/Data -uuid XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX - 该操作绕过 Time Machine 管理层,仅用于修复异常,日常清理仍优先用
tmutil











