df -h 与磁盘工具读数不一致是因统计对象不同:df -h / 查的是“macintosh hd - data”卷,而磁盘工具默认显示apfs容器总容量;需在磁盘工具中选中对应卷并点“信息”才能对比,同时需检查time machine本地快照和apfs保留空间影响。

df -h 读数和磁盘工具显示不一致,不是 bug,也不是数据错了,而是两者根本不在统计同一个东西——你得先看清楚自己在比什么。
确认 df -h 看的是哪个卷,而不是容器或物理盘
macOS 的 APFS 是分层结构:物理磁盘 → APFS 容器 → 多个卷(如 Macintosh HD、Macintosh HD - Data)。df -h / 实际查的是 Macintosh HD - Data 卷的用量;而磁盘工具默认选中“容器”时,显示的是整个容器容量(含所有卷+空闲空间),数值天然更大。
- 运行
df -h /,记下 Mounted on 列对应的路径(通常是/dev/disk1s1这类) - 打开磁盘工具 → 左侧选中“容器”(如
Container disk1)→ 右侧显示的是容器总大小,不能和df直接比 - 必须在磁盘工具左侧选中具体卷(如
Macintosh HD - Data)→ 点右下角“信息”按钮 → 才能看到该卷的已用/可用空间,这时才可与df -h /对齐
检查 APFS 快照是否悄悄占用了空间
Time Machine 的本地快照(localsnapshot)是只读的,文件系统认为它们“已占用”,所以 df 会把快照体积算进“已用”,但磁盘工具的卷信息里不单独列出快照,造成视觉差值。尤其在备份频繁或系统休眠后,快照可能堆积。
- 运行
tmutil listlocalsnapshots /查看是否存在近期快照(输出类似com.apple.TimeMachine.2026-04-04-233221) - 若快照数量多且你确认不需要回溯近期文件,可用
tmutil deletelocalsnapshots com.apple.TimeMachine.2026-04-04-233221逐个清理 - 注意:
tmutil localsnapshot是触发新快照,不是查看命令,别误用
识别保留空间(Reserved Space)带来的“已用”虚高
APFS 默认为 root 用户保留约 5–10% 的空间(具体比例随卷大小动态调整),用于系统关键操作(如日志写入、临时文件)。这部分空间对普通用户不可见、不可分配,但 df -h 会把它计入“已用”,而磁盘工具只显示用户可见容量,不体现保留逻辑。
- 运行
diskutil apfs list→ 找到对应卷,在输出中定位Reserved Space字段(常见值为几百 MB 到几 GB) - 该值不会随你删文件而减少,也无法禁用或手动调整,属系统设计行为
- 如果你看到
df显示“已用”比实际文件多出 1–2 GB,且无快照,大概率就是它
排除 Spotlight 或第三方工具缓存干扰
Spotlight 重建索引、Dropbox 同步中暂存、或 Carbon Copy Cloner 等工具的临时缓存,可能写入 .fseventsd、.Spotlight-V100 或隐藏目录,这些路径 df 能统计到,但磁盘工具刷新慢或未扫描隐藏内容,导致瞬时差异。
- 运行
sudo du -sh /private/var/folders/*/*/.Spotlight* 2>/dev/null | sort -h快速排查 Spotlight 缓存是否异常膨胀 - 检查
/Volumes下是否有未正常卸载的外接盘残留挂载点(mount | grep "/Volumes"),这类挂载异常也可能扰动df统计 - 重启 Spotlight 索引:
sudo mdutil -E /,观察后续df是否回归稳定
真正难排查的点往往藏在层级错位和快照残留里——比如你以为在比“整个磁盘”,其实 df 在报一个子卷的数据,而磁盘工具正盯着容器;又或者你刚删了 20 GB 文件,但 df 没变,其实是本地快照还锁着那些块。动手前,先用 diskutil apfs list 和 tmutil listlocalsnapshots / 把底细摸清,比盲目删文件有用得多。










