df -h 是最快速可靠的磁盘使用情况查看方式,显示各挂载点总容量、已用/可用空间及使用百分比,重点关注 use% 和 avail;需查 inode 耗尽用 df -ih,定位大目录用 du -sh 配合 sort,排查已删未释放文件用 sudo lsof +l1,apfs 容器级空间则用 diskutil apfs list/info。
直接在终端里输入 df -h 就能看到整体磁盘使用情况,这是最快速、最可靠的方式。它显示的是各挂载点的总容量、已用/可用空间和使用百分比,重点关注 use% 和 avail 这两列。
看全局分区占用:df -h 是核心命令
df 命令读取文件系统元数据,响应快、不卡顿,适合第一时间判断是否“满了”:
- 打开终端(Spotlight 搜索「终端」即可)
- 输入 df -h 回车——所有挂载点以 GB/TB 单位清晰列出
- 若只关心系统主分区,用 df -h | grep "Data" 筛出 Macintosh HD - Data 这一行(Catalina 及之后系统中用户数据实际存放位置)
- 怀疑是 inode 耗尽导致“有空间却写不了”,加 -i 参数:df -ih,关注 IUse% 是否接近 100%
找具体哪个目录吃掉最多空间:用 du 定位源头
df 告诉你“哪块满了”,du 才告诉你“什么占了最多”。它逐文件统计真实字节数,结果更贴近实际:
- 进入用户主目录:cd ~
- 查看当前目录下一级子项大小(含隐藏目录),按从大到小排前 10:du -sh .[^.]* * | sort -hr | head -10
- 重点检查高频“嫌疑区”:du -sh ~/Downloads ~/Documents ~/Desktop ~/Library/Caches
- 想看某个文件夹内部谁最大(比如 Downloads 里一堆小文件但总量大):cd ~/Downloads && du -sh * .[^.]* 2>/dev/null | sort -hr | head -8
排查 df 和 du 显示矛盾:可能是已删未释放的文件
如果 df 显示 100% 但 du 加起来才 70%,大概率是有文件被删了,但还在被某个进程占用(比如日志服务没重启):
- 列出所有已被删除但仍被占用的文件:sudo lsof +L1
- 筛选出尺寸较大的(单位为 K/M/G):sudo lsof +L1 | awk '$7 ~ /[0-9]+[KMG]$/ {print $0}' | sort -k 7,7hr
- 找到对应 PID 后,可尝试重启该进程释放空间:kill -HUP [PID]
查 APFS 容器级空间(macOS 特有)
APFS 的容器(Container)可能包含多个宗卷(Volume),df 默认只显示宗卷层级,有时需看底层容器分配:
- 列出所有 APFS 容器及空间概况:diskutil apfs list
- 查看指定容器(如 disk1)详细信息,包括“可清除空间”(Purgeable Space):diskutil apfs info disk1
- 这部分空间由系统自动管理,可能不计入 df 的 Avail 字段,但确实能腾出来










