Mac 上的可清除空间是什么
Finder 说磁盘有 321 GB 可用,储存空间设置里有一条标着可清除的灰色大带,df 又报出一个不同单位的数字,三个都没撒谎,也没有哪个在回答同一个问题。
几乎所有「Mac 说满了,可是找不到那些文件」的问题,先是测量问题,然后才是储存问题,搞清楚每个数字在回答什么,大部分就能对上。
简短回答: 可清除空间是 macOS 认为有需要时可以收回的空间,主要是本地快照、可逐出的云端文件和缓存,Finder 把它算进可用,其他工具不一定这么算,没有命令能直接释放它,通常也不需要,macOS 会按需释放。
三个数字,三个问题
在任意一台 Mac 上跑这两条,同一卷会得到三个不同的数字。
df -h /
diskutil info / | grep -i "Container"
写这篇文章用的那台机器上:
/dev/disk3s1s1 926Gi 12Gi 299Gi 4% /
Container Total Space: 994.6 GB (994610155520 Bytes)
Container Free Space: 321.0 GB (321045377024 Bytes)
df 说有 299Gi 可用,diskutil 说有 321.0 GB 空闲,其实是同一个量,321 十进制 GB 就是 299 二进制 GiB,Apple 用十进制 GB 报储存,df -h 打的是二进制单位并标成 Gi,先别急着断定空间消失了,看看是不是在拿 GB 跟 GiB 比。
Used 那一列写着 12Gi 是另一个意外,现代 macOS 上 / 是密封的只读系统快照,文件住在数据卷上,和系统快照共用同一个 APFS 容器,所以按卷统计的「已用」加起来对不上容器。
| 要问的问题 | 能回答它的工具 |
|---|---|
| 现在还能写入多少 | diskutil info / 的容器空闲空间 |
| 文件系统对这个卷报了多少 | df -h / |
| macOS 愿意向应用承诺多少 | Finder 的「可用」 |
| 空间按类别去了哪里 | 系统设置 > 通用 > 储存空间 |
可清除空间实际覆盖什么
可清除是 macOS 对压力到来时能释放多少空间的实时估计,来自几个互不相关的地方:
- 本地 Time Machine 快照。 通常是最大头,也是删了文件却好像没腾出空间的原因,见 本地快照。
- 可逐出的 iCloud Drive 和照片内容,在打开「优化 Mac 储存空间」时,本地只是占位,完整副本可以再下回来。
- macOS 认为可再生成的缓存,系统可以不问就丢掉。
- APFS 容器内部尚未处处反映的记账余量。
每一项规则都不同,所以「释放 47 GB 可清除空间」是事先没法核验的数字,它是一个上限,工具把它当成交付量来报,就是在猜。
不能按需清除,这是设计如此
没有受支持的命令能说「现在就释放可清除空间」,macOS 在分配需要这些块时才收回,这才是有用的行为,快照或已下载的云端文件值得一直留着,直到空间真的被要走。
所以一台报出很少空闲空间的 Mac,仍然能存下大文件或装上更新,因为请求本身就会触发回收,想更早点拿回空间,就去拿掉占着它的东西,而不是找一个清除开关,精简快照是唯一能稳定推动这个数字的杠杆:
tmutil listlocalsnapshots /
tmutil thinlocalsnapshots /
sudo purge 完全是另一回事
搜索结果总把这两件事搅在一起,所以先说清楚,purge 是一条真实的 macOS 命令,跟磁盘可清除空间没关系,它冲掉的是内存里的文件系统缓存,把已缓存的磁盘页赶出 RAM,Apple 做它是为了跑基准测试,让第二次跑测试不会读到热缓存。
sudo purge
它不释放磁盘空间,也不删除文件,丢掉的是系统刚花时间建好的缓存,接下来几分钟会变慢,因为一切都要从磁盘再读一遍,健康的 Mac 没有理由跑它,定时跑只会亏性能。
如果真正想问的是内存而不是磁盘,去读 内存压力,那边真正要紧的是压力,不是空闲 RAM 有多少。
为什么储存空间设置要过一会儿才对得上
删掉大东西之后,储存空间面板经常还显示旧数字,那个视图里的分类是后台进程抽样算出来的,不会每次变动都重数,而且好几个分类会重叠。
所以这块面板适合当地图,不适合当仪器,用它看卷的形状,改之前改之后用 df 或 diskutil 确认改动有没有生效。
一段简短诊断
空闲空间和预期对不上时,按这个顺序几分钟就能理清。
- 记下
diskutil info /的容器空闲空间,这是诚实的基线。 - 跑
tmutil listlocalsnapshots /,这里的条目能解释大部分「删了却没腾出空间」的报告。 - 看看照片和 iCloud Drive 有没有打开「优化 Mac 储存空间」,开了的话,一部分「已用」是可逐出的,一部分「可用」是理论上的。
- 然后才去找大文件,前三步已经解释了缺口,就不是文件问题。
检查工具适合放在哪
Mole 只报它能证明的事,列出的东西用真实磁盘占用,删掉的东西给前后总量,不会对它盘点不了的可清除池做标题承诺,空间是被快照钉住而不是被文件占住时,有用的回答是把这件事说清楚,而不是报一个更大的数字。
常见问题
该不该把可清除空间清到零?
不该,可清除空间多半是有用的工作状态,可能还用得着的快照、能立刻打开的云端文件、让应用保持快的缓存,把它压到零,是拿这些去换一个数字。
为什么 Finder 显示的可用空间比 df 多?
Finder 把 macOS 有把握收回的空间也算进去,df 报的是文件系统当前尚未分配的量,两个都对,只是问题不同。
外置磁盘有可清除空间吗?
本地快照是启动卷上的行为,所以最大头通常不在,外置 APFS 卷如果有东西往上面写过快照,仍然会带着。
可清除空间是出问题的信号吗?
只有它很大而且还在涨、空闲空间同时在缩的时候才是,这种形态通常说明快照堆积得比精简更快,快照那篇指南会讲。