<p>df 命令配合 grep 可精准筛选 macOS 磁盘信息:用 df -h | grep " /$" | grep -v "base"</code> 和 <code>df -h | grep " /System/Volumes/Data$" 分别定位根卷与用户数据卷;grep -v "private|disk|map|devfs" 排除临时挂载点;awk '$5+0 > 90 {print}' 或 grep "9[0-9]%|100%" 检测高占用;外接盘用 grep "/Volumes/XXX" 或正则 ^/dev/disk.* /Volumes/ 匹配。</p>

在 macOS 中,用 df 查看磁盘使用情况时,默认输出包含所有挂载点(如 /、/System/Volumes/Data、/Volumes/xxx 等),信息较杂。配合 grep 可快速聚焦关心的分区,比如只看根目录、数据卷或某个外接硬盘。
只显示根目录(/)和数据卷(/System/Volumes/Data)的空间
macOS Catalina 及之后系统采用分离式宗卷(APFS),系统和用户数据分别位于不同卷宗。常用目标是这两个关键路径:
-
df -h | grep " /$"—— 匹配末尾为/的行(注意空格),精准定位根挂载点(通常是只读的 Recovery 或 Base System?实际需结合输出判断;更稳妥的是查/System/Volumes/Data) -
df -h | grep " /System/Volumes/Data$"—— 直接匹配用户数据所在主卷,反映你真正可用的磁盘空间
排除系统临时卷,避免干扰
df 默认会列出大量内部临时挂载点(如 /private/var/folders/xxx、/dev/diskXsY),它们占用小且不重要。用 grep -v 排除:
-
df -h | grep -v "private\|disk\|map\|devfs"—— 过滤含这些关键词的行,保留更干净的用户可见卷列表 - 也可组合:
df -h | grep " /System/Volumes/Data\| /$" | grep -v "base",避开 base system 卷
按使用率排序并高亮告警(如 >90%)
单纯过滤不够,还需关注是否快满。可借助 awk 辅助(grep 本身不支持数值比较):
- 快速检查高占用:
df -h | awk '$5+0 > 90 {print}'—— 提取第5列(Use%),转为数字后判断是否超90% - 若坚持只用
grep,可近似:df | grep "9[0-9]%\|100%"—— 匹配 “90%” 到 “99%” 和 “100%”,但无法识别 “89%” 或 “9.5%” 这类格式(因df对小容量设备可能显示小数)
匹配外接硬盘或 Time Machine 备份盘
插入 USB 硬盘或 TM 盘后,通常挂载在 /Volumes/XXX。直接按卷名过滤最可靠:
-
df -h | grep "/Volumes/MyBackup"—— 替换MyBackup为你硬盘的实际名称(空格需用反斜杠转义,如"My\ Backup") - 模糊匹配所有用户挂载卷:
df -h | grep "^/dev/disk.* /Volumes/"—— 先确保是磁盘设备,再确认挂载在/Volumes/下

















