要回答「我的磁盘被什么占了?」,Mac 自带三种办法,但每一种都会在某个地方止步。下面分别说说它们能看到什么、在哪里卡住,以及接下来该怎么做。前三种免费,而且 Mac 上本来就有。
1. “储存空间”设置:总览
打开系统设置 ▸ 通用 ▸ 储存空间。顶部的横条把磁盘按类别分开(应用程序、文稿、照片、macOS、系统数据等),下面的列表里大多数类别旁边都有一个 ⓘ 按钮。最有用的是“文稿”那一个:它会列出大文件、下载项和你不再使用的 app,并且可以直接在那里删除。
这是该先去的地方,对很多人来说也就够了。它在两处止步。首先,这些类别是 Apple 划分的,不是你的文件夹,所以一个 40 GB 的项目文件夹只是“文稿”里的一部分。其次,系统数据根本没有 ⓘ 按钮,而它常常是所有类别里最大的一个。
2. 访达:一个文件夹一个文件夹地看
只要你开口,访达就会显示文件夹大小。打开一个文件夹,切换到列表视图(⌘2),然后选择显示 ▸ 查看显示选项(⌘J),勾选计算所有大小。点按“大小”栏就能排序,最大的排在最前。
但这一次只能看一个文件夹,所以要找到藏在三层之下的大文件夹,就得一层层打开,等着大小一个个算出来。访达还会把 ~/Library 和其他隐藏文件夹藏起来,而空间往往就耗在那里。⌘⇧. 可以显示隐藏文件,前往 ▸ 前往文件夹(⌘⇧G)能直接打开 ~/Library。
3. 终端:一次看完所有文件夹
du(“disk usage”,磁盘用量)会把你指定的文件夹下每个文件夹的大小加总。下面这条命令列出个人文件夹里的各个文件夹,从小到大排列,最大的会落在最底下:
du -h -d 1 ~ 2>/dev/null | sort -h
然后对最大的那个再跑一遍,比如 du -h -d 1 ~/Library | sort -h,一层层往下挖。2>/dev/null 用来隐藏 macOS 受保护文件夹报出的“Operation not permitted”(参见下文的完全磁盘访问权限)。
它准确又免费,但文件夹一大就很慢。一个含 330 万个文件的个人文件夹,du 要跑 76 秒,每往下一层都得再跑一遍。最后你得到的是一列数字,能看出哪些文件夹大,却看不出它们彼此相差多少。
4. 矩形树图:一屏看完整个磁盘
矩形树图把每个文件画成一个矩形,大小和它占用的空间成正比;每个文件夹则是由里面的内容拼成的矩形。一个占了半个磁盘的文件夹,就占半张图,不管它藏在多少层之下。大文件看上去就大,不用打开任何东西就能找到。


Layland 是一款为速度而生的 macOS 矩形树图 app:扫描含 330 万个文件的个人文件夹大约 14 秒,同样的文件夹 du 要 76 秒,GrandPerspective 要 97 秒。把指针悬停在任意方块上,就能看到它的路径和大小。点按一个方块后按 ⌘[ 选中包含它的文件夹,或按 ⌘] 选中文件夹里最大的项目,敲几下键就能找到最大的那个文件。
图出来之后,有两种视图很有帮助。按时间着色(View ▸ Color By ▸ Last Modified)按最后修改时间给文件上色,旧文件会连成一片冷色区域。Show Free Space 把可用空间和磁盘的其余部分加到图上,让你看出一个文件夹相对整个磁盘有多大。


扫描和完整的图都是免费的。文件夹名称显示两层;许可证会显示每一个文件名,并加上搜索、Quick Look、Reveal in Finder 和 Move to Trash。
空间通常花在了哪里
大多数塞满的磁盘,问题都出在同样几处。先查这些:
- 虚拟机和容器。Docker Desktop 把所有容器放在同一个磁盘映像里,位于
~/Library/Containers/com.docker.docker,而且只增不减。Parallels、UTM 和 VMware 的虚拟机都是单个文件,动辄几十 GB。 - Xcode。
~/Library/Developer里有构建文件夹(DerivedData)、模拟器,以及你连接过的每一台 iPhone 的支持文件,加起来可以达到 50 GB 甚至更多。 - iPhone 和 iPad 备份,位于
~/Library/Application Support/MobileSync/Backup。每台设备一份,旧设备的备份在你删掉之前会一直留着。 - “照片”图库,如果“照片”▸“设置”▸“iCloud”里没有选择优化 Mac 储存空间的话。
- “下载”文件夹:只打开过一次的安装器、磁盘映像和压缩包。
- 缓存,位于
~/Library/Caches。app 会重新生成它们,所以可以放心删,但它们还会再长回来。 - “信息”和“邮件”的附件,位于
~/Library/Messages/Attachments和~/Library/Mail。
删掉任何你不认识的东西之前,先查一查它是什么。把东西移到废纸篓,而不要用 rm,这样弄错了还能撤回。
完全磁盘访问权限,以及总数为什么对不上
有些文件夹,比如 ~/Library 里其他 app 的容器、“邮件”和“信息”,除非你允许,否则 macOS 不让 app 读取。没有这项权限的磁盘工具会少算,而漏掉的那部分往往正是空间的去处。请在“系统设置”▸“隐私与安全性”▸“完全磁盘访问权限”中给它完全磁盘访问权限;如果你用 du,也要把“终端”加进去。
即便如此,不同的工具对同一个磁盘也可能算出不同的总数,而且各有道理:
- 可清除空间。macOS 在需要时可以释放的空间(保留在本地的 iCloud 文件、本地 Time Machine 快照),访达会把它算作可用空间,其他工具则算作已用。
- Logical size 与 Size on disk。稀疏文件(比如虚拟机的磁盘映像)可能显示为 64 GB,实际占用却少得多。Layland 的工具栏可以在这两者之间切换。
- APFS 克隆。在同一个磁盘上用访达复制文件,得到的是与原件共享数据的克隆,所以两份 10 GB 的副本可能只占 10 GB,而不是 20 GB。把文件大小直接相加的工具会把它算两次。
常见问题
查看 Mac 上是什么占用了空间,最快的方法是什么?
想看总览,就去“系统设置”▸“通用”▸“储存空间”。要找到具体的文件夹和文件,像 Layland 这样的矩形树图 app 几秒钟就能扫完整个个人文件夹,并把每个文件按比例画出来,最大的那些一眼可见,不用一个个文件夹去打开。
怎样在访达里查看文件夹大小?
用列表视图打开文件夹,选择“显示”▸“查看显示选项”,勾选“计算所有大小”。然后点按“大小”栏排序。这个办法一次只能看一个文件夹。
删除 ~/Library 里的文件安全吗?
部分是安全的。~/Library/Caches 里的缓存会由生成它们的 app 重新建立。其他文件夹存放着 app 的设置和数据,删了就没了,所以遇到不认识的先查一查,并且把东西移到废纸篓,而不是直接删除。
为什么我的磁盘工具显示的数字和访达不一样?
通常是三个原因之一:可清除空间,访达把它算作可用;稀疏文件,逻辑大小比实际占用的磁盘空间大;APFS 克隆,它们共享数据,却被直接相加文件大小的工具算了两次。缺少完全磁盘访问权限,也会让工具少算。
Layland 免费吗?
扫描和完整的图都免费,不限时间,文件夹名称显示两层。一次性购买许可证后,可以看到每个文件名,并加上搜索、Quick Look、Reveal in Finder 和 Move to Trash。