Mac 用久了最烦的有两件事,一是电池健康度哗哗掉,二是磁盘空间莫名告急。我周围不少同事,硬盘明明 512GB,平时也没装几个大型软件,某天突然被系统提示“磁盘空间不足”,打开访达一层层翻文件夹,折腾一晚上也看不出到底谁在偷空间。这时候最靠谱的办法不是凭感觉删,而是用一款磁盘分析工具,把整块硬盘的占用情况变成一张可视化饼图,几秒钟锁定大头。这篇文章我结合实际用过的几款工具,详细聊聊怎么用饼图型磁盘分析工具揪出偷走空间的元凶,以及清理过程中必须避开的坑。
这不是一篇简单的工具安利,重点是讲清楚原理、选型思路和实操细节。适合以下三类人看:一是 Mac 空间常年处于红色警告的老用户,二是刚入手 Mac 想从一开始就养成科学存储习惯的新手,三是运维和开发同学——你们电脑里的模拟器、镜像、缓存和本地仓库,往往是空间杀手重灾区。文章不写废话,所有工具和路径都是我实测过的,步骤可以直接照着抄。
1. 先搞清楚空间到底去了哪,再谈怎么清理
很多人一看到磁盘快满就慌,第一反应是去下载清理软件,或者打开访达翻“其他”,翻来翻去也看不出门道。这个心态我特别理解,但方向不对。磁盘分析的第一步不是清理,而是了解现状——你的存储空间究竟被谁占了。
1.1 访达和“关于本机”为什么帮不了你
macOS 自带的“关于本机 -> 存储空间”里确实有个彩色条,能显示 App、文稿、照片、系统数据大概各占多少。问题在于,它只给大类,不显示具体文件路径。你想知道那 50GB 的“系统数据”到底是什么,点进去什么都没得看。访达就更不靠谱了,即使切到“显示所有文件”,一层层数下来也不知道哪里有大文件,因为 macOS 默认会把很多系统目录、缓存目录藏起来,普通用户根本进不去。
这也是磁盘分析工具存在的意义。它能直接扫描整个卷宗的文件系统,遍历所有目录,包括隐藏目录、系统目录、应用支持目录,然后把每个目录和文件按大小建模,生成交互式可视化视图。工具的价值不在于“快”,而在于“全”——它能把访达看不到的文件也呈现在你面前。
1.2 空间杀手的常见来源:你以为是电影,其实是缓存
根据我这些年帮人清理 Mac 的经验,真正吃掉磁盘空间的通常不是照片、视频,而是下面几类:
- 缓存文件:浏览器缓存、微信/QQ 接收的巨量图片和视频、Adobe 系软件的缓存、开发工具缓存。这些文件分散在
~/Library/Caches和各个应用的 Container 目录中,单个体积不大,但日积月累非常可观。 - 虚拟机与磁盘镜像:Parallels Desktop、VMware Fusion 创建的虚拟磁盘动辄几十 GB,而且如果你开启了“自动收缩”没生效,删除客户机里的文件后宿主磁盘也不会自动回收。Docker Desktop 的镜像和 data 文件同样能轻松吃掉 20GB。
- 开发工具链:Xcode 的 DerivedData、iOS DeviceSupport、模拟器运行时;Android 的 AVD 镜像;Homebrew 的历史安装包。我见过一个装了三年开发环境的 Mac,
~/Library/Developer目录硬生生占掉 60GB。 - 本地 Time Machine 快照:如果你开过 Time Machine,macOS 会在本地保留一份“本地快照”。空间中剩余不多时系统确实会自动清,但有时候因为运行进程占用,清理不及时,会出现“系统数据”异常膨胀。
- 邮件下载的附件和旧版本 App 备份:Mail 会把所有附件缓存到本地;macOS 在 App 更新时也会保留旧版本的备份(
/private/var/db/com.apple.softwareupdated/等)。
看到没,以上这些你靠访达是看不全的。只有通过磁盘分析工具扫描全盘,把它们按大小排出来,才知道该对谁动手。
2. 为什么饼图是磁盘分析的最佳视觉形态
市面上磁盘分析工具不少,有的用树状图,有的用矩形树图,有的用列表清单。我为什么特别推荐“一张饼图”这种形态?因为它天然匹配人脑感知空间占比的方式。
2.1 环形饼图的优势:层级关系与占比一眼可见
饼图(更准确地说,DaisyDisk 那种圆环图)把每个目录渲染成一个弧形块,目录越大弧越宽。外层弧代表一级目录,内层继续拆分子目录,理论上你点击任意一层都能继续往下钻。这种设计的好处是:你一眼就能看到哪一块弧最粗,大头在哪。比如扫描完发现“用户目录”占了 60%,“系统目录”占 25%,那重点肯定在用户目录里进一步钻。
相比之下,矩形树图(Treemap)虽然信息密度更高,但视觉上块状嵌套容易看花眼;纯列表形式的工具(比如du命令)虽然精确,但给小白看完全没概念,让人不知道该从哪个大文件下手。饼图恰恰是“一眼定位元凶”的工具,特别适合刚接触磁盘分析的人。
2.2 为什么“能看层级”比“能搜到大文件”更重要
很多人觉得,不就是找大文件吗?我直接用 Spotlight 搜size:>1G不就行了。这个思路对文件多而杂的人是不成立的。磁盘空间占用有很强的“目录聚合性”:一个目录里可能有两万个小文件,加起来 30GB,但单独看任何一个文件都不到 100MB。如果你只搜大文件,完全发现不了这个目录。
磁盘分析工具的每层钻取能力,相当于把“按目录聚合后的大小”层层可视化。你点进去某个目录,能看到它哪个子目录最大,再往下钻直到文件级。这种从宏观到微观的路径,是搜大文件解决不了的。
2.3 工具选型:几款主流磁盘分析工具实测对比
市面上的饼图型工具不少,我亲手试过的有这几款:
| 工具 | 可视化形式 | 扫描速度 | 授权复杂度 | 价格 | 适合人群 |
|---|---|---|---|---|---|
| DaisyDisk | 环形饼图 | 快,基本几秒到十几秒 | 需要授权“完全磁盘访问权限” | 收费买断,可试用 | 最推荐,兼顾颜值和实用性 |
| OmniDiskSweeper | 列表 + 视觉条 | 飞快 | 需要完全磁盘访问权限 | 免费 | 喜欢经典列表流的人 |
| GrandPerspective | 矩形树图 | 快 | 需要完全磁盘访问权限 | 免费开源 | 想从树图视角看空间结构 |
| Disk Map | 环形饼图 | 快 | 需要完全磁盘访问权限 | 免费 | 不想花钱,只要最基础的饼图 |
ncdu(命令行) | 交互式文本界面 | 极快,适合服务器 | 无 GUI | 免费 | 终端党,SSH 进服务器排查空间用 |
这里多说一句,很多人用不惯按钮很多的收费工具,觉得功能太复杂。实际上 DaisyDisk 的交互做到足够简洁:中间一个大圆环,左边工具栏,右侧详情面板,拖动文件到右侧“整理区”就可以批量删除。免费用户也有扫描和查看功能,只是清理功能受限。如果你只是想知道空间去哪了,免费版完全够用;如果要顺手清理,可以考虑付费或先用替代方案。
3. 完整实操:从扫描到清理的每一步
下面我以 DaisyDisk 为例,完整走一遍用饼图磁盘分析工具揪出空间元凶的流程。这个过程我重复过不下几十次,步骤很稳,跟着做不会翻车。
3.1 下载安装与磁盘访问授权
第一步当然是把工具下载安装好。DaisyDisk 官方网站有试用版下载,安装后打开,首次运行它会弹窗提示“需要完全磁盘访问权限”。这一步是 macOS 的安全机制,不是工具恶意索权——因为如果拿不到权限,它就没法读取那些受保护目录(比如邮件附件、系统缓存、Time Machine 快照),扫描结果会严重失真。
点击“打开系统设置”,在“隐私与安全性 -> 完全磁盘访问权限”里找到该工具并打开开关,然后彻底退出并重新启动工具。注意,这里必须重启工具,否则授权不生效。我见过很多人打开了系统设置但忘了重启,回来点扫描发现还是报权限不足,就开始怀疑工具坏了。
有个小细节:如果系统设置里找不到这个工具,可以点左下角的加号,手动到“应用程序”目录里把它加进去。macOS 某些版本对非商店下载的应用管理比较严格,手动添加是常规操作。
3.2 扫描全盘:不用一个个分区手动扫
授权完成后,启动界面会列出所有可扫描的磁盘卷宗。如果你是普通用户,选主磁盘(一般是“Macintosh HD”),点 Scan。扫描期间会遍历文件系统,速度取决于磁盘类型和文件总数。NVMe 固态一般十几秒能完成,机械硬盘或文件极多的目录可能要一二十秒。
扫描完成后,DaisyDisk 会生成一个圆环图。默认视角是所有一级目录(比如Users、System、Applications、Library、private)。此时要注意三个信息区:
- 主圆环:每个色带代表一个目录,悬停能看到目录名与大小。
- 右侧详情面板:选中某一层时,列出该目录下的子目录和文件,按大小降序排。
- 底部统计栏:显示当前选中层级的已用空间、可用空间和总空间。
我的习惯是先不急着点,先扫一眼整个圆环里哪个色带最粗。绝大多数情况下,最粗的是Users下的用户目录,这就是后面要深挖的主战场。
3.3 逐层下钻:从“大头”找到具体文件
找到最粗的色带后,双击进入它的子层级。举一个典型例子:点进Users/你的名字之后,常见的大头是Library(应用缓存、应用支持)、Downloads(积攒的安装包)、Movies、Desktop等。继续点最粗的那一块,周而复始,直到你能看到具体文件名。
这里给一个真实案例:我曾经帮朋友清理一台 256GB 的 MacBook Air,圆环图一眼看过去Library占了 70GB。点进去发现是~/Library/Containers/com.tencent.xinWeChat/Data/Library/Application Support/com.tencent.xinWeChat/下的“消息记录”和“缓存视频”,微信的聊天图片和视频缓存占了 48GB。这种文件你在微信设置里可能很难找一个一个清,但磁盘分析工具直接把这个路径列得明明白白,你知道删谁了。
下钻到文件级以后,预览功能很有用。DaisyDisk 能通过“Quick Look”直接预览大部分格式的文件,一个 2GB 的 dmg 安装包是不是还需要留,预览一眼就知道。判断清楚了,再决定下一步。
3.4 删除与收纳:直接拖拽清理而不是用访达
如果你用的是支持清理的版本,清理方式也很直观:把确认要删的文件或文件夹拖到右下角的“整理区”,它会变成一块“待删除”的集合。点右下角的“删除”,工具会请求一次管理员权限,然后执行删除。之所以推荐这种方式,是因为工具内部会确保你先授权、再删除,提供了一个“后悔”的缓冲期。
有一点必须提醒:删除前一定要确认路径。磁盘分析工具的删除操作会直接走文件系统删除接口,和访达里右键“移到废纸篓”不一样,拖到清理区后确认删除,可能不会经过废纸篓(具体看工具设置)。如果你不确定这个文件是不是有用,建议右击选择“在访达中显示”,手动把它移到废纸篓,再观察几天,确认没问题再清空废纸篓。稳妥永远比效率重要。
4. 那些年踩过的坑:常见问题与排查技巧
用磁盘分析工具这几年,我踩过不少坑,也和群里朋友一起踩过更多坑。把高频问题整理成速查表,方便你遇到时直接对症下药。这些都是文档里不会写太细的经验。
4.1 扫描结果和“关于本机”对不上,是不是工具不准
经常有人问我:DaisyDisk 扫出来的已用空间和系统“关于本机”里显示的数值老是对不上,是不是工具出 bug 了。答案恰恰相反。macOS“关于本机”里把某些东西归类为“系统数据”,数值经常被系统保守估算,甚至本地 Time Machine 快照、文件系统元数据、磁盘卷宗预留空间都被算在一起。而磁盘分析工具按实际文件大小累加,是精确计算文件空间的。
对不上是正常的,差异越大越说明“系统数据”里有大量隐藏文件。你更需要关注的是:工具显示的哪些目录最大,大到可以解释为什么空间不够用。不要纠结那个绝对数值是否一致,关键是找到大文件。
4.2 提示“无法读取”某些目录,多半是权限问题
第一次扫描时,你可能会遇到个别目录显示为灰色或显示“无法访问”。常见的三个原因:
- 没有授予“完全磁盘访问权限”,工具无法进入受保护目录。解决方案是重新检查系统设置里的授权,并重启工具。
- 卷宗属性和文件权限问题,某些目录对当前用户是只读的。这时候即使拿到完全磁盘访问权限,也可能因为 SIP(系统完整性保护)无法读取。解决办法不用强求,系统目录里的东西本来就很少需要手动删。
- 文件正在使用中,比如某些容器文件或数据库文件正在被进程占用。扫描时工具的读取尝试可能被系统拦截或返回空。这不影响整体分析,因为一个大文件占用的空间通常存在硬链接或稀疏文件,工具能识别出大小。
如果实在遇到某目录点不开,又怀疑它很大,可以在终端里用
du -sh 目录路径来确认。两者交叉验证,数据就有底了。这个命令是du的隐藏技能,终端党必备。
4.3 清理完空间没涨,或过一会儿又满了
这算是另一个高频困惑:我明明删了好几个大文件,为什么磁盘剩余空间几乎没变化?甚至过几天又打回原形?这里涉及两个需要留意的机制:
第一,废纸篓还没清空。磁盘分析工具如果只是移动到废纸篓,空间不会立刻释放。你得去废纸篓里再清一次。有些工具会在删除说明里提示“将文件移到废纸篓”,默认不会永久删除,目的就是防止误删。你不清空废纸篓,等于白删。
第二,本地 Time Machine 快照会占空间。当你开过 Time Machine,macOS 会把快照暂存在本地。平时删了东西,系统可能先保留快照,导致空间被“延迟释放”。你可以用终端命令tmutil listlocalsnapshots /查看本地快照,如果确实占空间而且不需要保留,可以手动清理快照。这个操作有一定风险,建议确认自己不需要从旧快照恢复文件时再做。
4.4 那些看起来很大但别乱删的东西
磁盘分析工具会把你以前没见过的系统目录全部摊开,比如/private/var/vm下的sleepimage、swapfile。看到这些大文件时先别激动。
- sleepimage:系统睡眠镜像文件,大小通常和内存容量相当。它的作用是休眠时把内存内容写入磁盘,方便唤醒。这个文件在系统正常休眠后会自动管理,不建议手动删除。如果你强制删了,系统可能在唤醒时出问题,或者下次睡眠时重新生成。
- swapfile:交换文件,虚拟内存用的,绝对不能手动删。磁盘空间不足时系统都未必能正常挂起,你手动把 swap 删了,相当于给系统添乱。
- 系统预置缓存(
/System/Library/Caches):这类缓存文件删除后,系统可能临时拖慢,因为要重建。而且很多地方在 SIP 保护下你也删不动。
说白了,磁盘分析工具的职责是“发现”而不是什么都让你“删除”。真正能安全清理的,是自己用户目录下的缓存、下载目录、过期的虚拟机镜像、旧开发依赖。遇到系统目录,宁可多看多查,也不要手起刀落。
5. 从分析到习惯:让磁盘空间不再告急
工具只能帮你“治已病”,真正让磁盘空间长期健康还得靠习惯。我把这套流程复述成日常用法:每月固定用饼图工具扫一次,关注新增的大目录变化;下载目录及时归位或清理;虚拟机不用时彻底关机并压缩磁盘;微信、钉钉的自动下载文件定期清理;开发机器上养成及时清理 DerivedData、删除旧模拟器、清 Homebrew 缓存(brew cleanup -s)的习惯。
如果你发现自己每次清理完空间都会很快再满,我教你一个诊断思路:清理完记下剩余空间,隔一两天再扫一次,看看涨起来的是哪个目录。多数情况下,你会发现是某个应用的缓存、日志、或多个容器(Docker 或虚拟机)在“反复横跳”。确定元凶后,针对性地去应用设置里限制缓存大小或路径,比每次全盘扫描再删除高效得多。
用饼图工具这几年,我最深的体会是:磁盘空间管理拼的不是工具多贵,而是你对“哪些可以删、哪些别乱动”有没有判断力。饼图给了你全局视野,剩下的判断需要一点经验积累。比如微信缓存目录和 Xcode DerivedData,这两个地方我每次清理都能腾出 10GB 以上;但如果你看到/private/var/db/dyld或休眠镜像这类文件,劝你还是行行好,放过它们。用工具把空间弄得明明白白,动手前多确认几遍,你也能做到让 Mac 的存储空间长期不告急。