最有效释放“系统数据”被锁空间的方式是用终端命令删除过期APFS快照:先用diskutil apfs listSnapshots定位快照,再用tmutil thinlocalsnapshots批量清理或deletelocalsnapshots精准删除,遇僵尸快照则用diskutil apfs deleteSnapshot强制清除。

直接用终端命令删过期 APFS 快照,是释放“系统数据”里被锁住空间最有效的方式。关键不是命令多难,而是先找准位置、再选对方法,避免误删或白操作。
先确认快照在哪、有多大
很多用户运行 tmutil listlocalsnapshots / 返回空,就以为没快照——其实 macOS 11+ 后,Time Machine 本地快照默认存在 /System/Volumes/Data 卷上,而不是只读的根卷 /。
- 打开终端,依次执行:
sudo tmutil listlocalsnapshots /
如果为空或报错,立刻试:sudo tmutil listlocalsnapshots /System/Volumes/Data - 更可靠的方式是底层验证:
diskutil apfs listSnapshots /System/Volumes/Data
它会列出每个快照的 UUID、创建时间、大小,以及 Purgeable: Yes(表示可安全删除)
优先用 thinlocalsnapshots 批量清理
这是系统内置的安全批量清理方式,自动跳过刚创建、正在被引用或受保护的快照,只删冗余项,不影响 Time Machine 恢复能力。
- 想腾出尽可能多空间(保留最少必要快照):
sudo tmutil thinlocalsnapshots /System/Volumes/Data 9999999999999999 1 - 只想释放 5GB,且至少保留 4 个快照:
sudo tmutil thinlocalsnapshots /System/Volumes/Data 5000000000 4 - 执行后等待提示 “Thinning complete” 或 “Deleted X local snapshots”,再运行
listlocalsnapshots验证结果
手动删指定快照(精准控制)
适合某次快照异常庞大(比如单个占 8GB+),或外置备份完成后定向清理。注意:名字输错一个字符就会失败。
- 从
listlocalsnapshots输出中复制完整时间戳,例如2026-07-25-143201(不用写前缀com.apple.TimeMachine.) - 执行:
sudo tmutil deletelocalsnapshots 2026-07-25-143201 - 每删一个,等终端返回 Deleted local snapshot 再继续下一个
- 不确定是否安全?可先运行:
tmutil calculatedrift /
查看该快照与当前系统的差异程度
处理删不掉的“僵尸快照”
断电、NAS 失联或升级中断可能导致快照元数据损坏,tmutil 无法识别或删除,这时要用 diskutil 底层强制清理。
- 先用
diskutil apfs listSnapshots /System/Volumes/Data找到目标快照的 UUID - 执行:
sudo diskutil apfs deleteSnapshot /System/Volumes/Data -uuid [UUID]
(把[UUID]替换为实际值) - 成功后,建议运行
df -h /查看可用空间是否上涨;若无变化,重启一次再检查更可靠


















