Mac 上的系统数据是什么(以及为什么这么大)
系统数据是系统设置中“储存空间”面板显示的一个数字,代表不属于 macOS、应用程序或你的文件的已用空间。它包括交换文件和系统数据库、App 为自己保留的数据、缓存、日志和临时文件,还有不会自行回来的东西,例如本地模型、模拟器、worktree、Docker 镜像和会话历史记录。
最后这一类,正是有些 Mac 上这个数字特别大的原因。本页以一台真实的 Mac 为例,说明里面有什么,以及哪些部分值得你留意。
这个数字从哪里来
打开系统设置,进入“通用”,再进入“储存空间”。顶部的条形图把磁盘的已用空间分成几个类别:应用程序、文稿、照片、信息、macOS 等。大多数类别后面都有一个列表。你可以看到哪些 App 或哪些文稿占用较大。
系统数据是剩下的部分。macOS 把能归入某个命名类别的内容加起来,磁盘上的其余内容都算作系统数据。它后面没有列表,所以面板只给你一个大小,没有可以操作的东西。
这也是这个数字看起来很随机的原因。安装 Xcode、下载模拟器、时间机器创建本地快照,或者某个 App 决定保留一大块缓存时,它都会变化。这些在面板的其他地方都看不到。
同一块磁盘,两种算法
Wipecraft 从同样的已用空间出发。它把每个已用字节分成四部分,加起来等于总量:macOS、App、你的文件和系统数据。然后按移除某项内容后会发生什么,再把系统数据分成五组。
| “储存空间”面板 | Wipecraft |
|---|---|
| macOS | macOS |
| 应用程序 | App |
| 文稿、照片、信息及其他命名类别 | 你的文件 |
| 系统数据,一个数字 | Mac 需要这些 · 可放心移除 · 会再出现 · 由你决定 · macOS 未显示 |
每一组回答一个问题。
- Mac 需要这些。 交换文件、系统数据库,以及 App 为自己保留的数据。会显示,但绝不会建议移除。
- 可放心移除。 对应 App 会自行重新创建的缓存、日志和临时文件。
- 会再出现。 可以移除,但随着使用会重新填满,例如浏览器缓存和软件包缓存。
- 由你决定。 不会自行回来的东西的唯一副本:本地模型、Android 模拟器、iOS 模拟器、worktree、Docker 镜像和会话历史记录。
- macOS 未显示。 减去所有能识别的内容之后剩下的部分,并附有原因,例如完全磁盘访问权限已关闭,或只有管理员才能读取的文件夹。
每一组的完整规则见工作原理。
一台真实的 Mac,实测结果
这是作者自己的 Mac,一台 M2 Pro,每天用 Xcode、Android Studio、Docker 和 AI 编程智能体开发 App。Wipecraft 于 2026-11-08 扫描了它。
系统数据为 271.1 GB。按分组拆开:
| 分组 | 大小 |
|---|---|
| Mac 需要这些 | 125.6 GB |
| 可放心移除 | 58.7 GB |
| 会再出现 | 2.7 GB |
| 由你决定 | 84.0 GB |
这次扫描中,“macOS 未显示”为空。
从上往下读这张表。系统数据中将近一半是 Mac 运行所需的空间。任何清理工具都不应该动它,提出要清理它的工具是在猜。可放心移除的部分很大,但主要是缓存,而缓存会随着你使用生成它们的 App 再长回来。决定你真正能收回多少空间的,是“由你决定”。
同一次扫描中最大的几个来源:
| 来源 | 大小 |
|---|---|
| 模拟器 | 98.8 GB |
| Git worktree | 22.4 GB |
| Android 模拟器和系统镜像 | 14.2 GB |
| Claude Desktop | 12.4 GB |
| Docker | 9.2 GB |
| 本地模型 | 5.7 GB |
| Claude Code | 4.3 GB |
| Codex | 3.1 GB |
这些行是单个来源的大小:一个来源留在磁盘上的所有项目合在一起计算。一个来源可能分布在几个分组中。一个模拟器运行时,大部分属于 “由你决定”,一部分是 Mac 当前需要的,还有一部分可放心移除。所以这些行不是上面各分组的拆分,加起来也不等于它们;单个来源甚至可能比容纳它大部分内容的那个分组还大。
为什么会这么大
有三样东西让系统数据变大,而且会在几个月里不断累积。
没有上限的缓存。 大多数 App 都有缓存,而且大多数从不缩小它。一个浏览器、一个设计工具和一个包管理器,各自都可能占用数 GB。每个缓存单独看都合理。加在一起,就是这个数字中很大的一部分。
你忘了的副本。 旧 iOS 版本的模拟器、已结束项目的 Android 模拟器、只试过一次的本地模型、去年春天的 Docker 镜像。这些都是真实的文件,下载或构建它们都花了时间。没有哪个 App 会替你移除它们,因为没有哪个 App 知道你已经不再需要它们。
macOS 为自己保留的东西。 内存紧张时,交换文件会变大。时间机器会把本地快照留在磁盘上,直到需要空间为止。聚焦和其他系统服务会保留自己的数据库。这些本来就属于系统数据,不该由你手动移除。
为什么清理后又回来了
删掉缓存后,系统数据会下降,一周后大部分又回来了。这是缓存在正常工作。App 下次运行时会重新创建它需要的内容。再删一次,你只是又换来一周的空间。
模拟器和软件包缓存也一样。项目需要时,Xcode 会重新下载模拟器运行时。下次安装时,包管理器会再次填满它的缓存。所以 Wipecraft 把 “会再出现”和“可放心移除”分开:两者都可以移除,但只有一种能长时间不回来。
能一直保持空闲的空间来自“由你决定”。当你移除一个不会再用的模型,或者一个分支已合并的 worktree,它不会再长回来。
哪些可以手动安全清理
大部分工作不用任何 App 也能完成。简要来说:
- 通常安全。 已关闭 App 的缓存,位于
~/Library/Caches。Xcode 的构建数据,位于~/Library/Developer/Xcode/DerivedData。已安装的 Xcode 都无法运行的模拟器,可用xcrun simctl delete unavailable删除。 - 由你决定。 本地模型、Android 模拟器、你仍在使用的模拟器、Docker 镜像和旧的 iOS 备份。每一项都是唯一副本。移除之前,先确认它是什么,以及你上次使用它是什么时候。
- 不要动。
/System、/private/var下的任何内容,以及交换文件。手动移除这些可能导致 Mac 无法启动。
时间机器本地快照是个特殊情况。你可以用 tmutil listlocalsnapshots / 列出它们。macOS 不报告本地快照的大小,移除后也无法撤销。
开发者工具和 AI 智能体
在用于开发的 Mac 上,“由你决定”的大部分来自这些工具。每个工具都把自己的数据放在自己的位置,彼此互不知晓。
Xcode 按项目保留构建数据,还有归档、设备支持文件和预览。模拟器是 iOS 的完整副本,每台设备一个,另外还有它们启动所用的运行时镜像。Android 模拟器和 SDK 系统镜像是 Android 上的同一回事。Docker 保留镜像、卷和构建缓存,在 Mac 上这些全部存放在一个很大的磁盘映像文件中。
AI 编程智能体又加了一层。它们在 git worktree 中工作:仓库的完整副本,每个任务一个,各自带有自己的构建输出。一个智能体一天可能创建好几个,任务完成后它们仍会留下。Claude Code 和 Codex 保留会话历史记录、文件历史和日志。Claude Desktop 为其沙盒保留 VM 包。来自 Ollama、LM Studio 或 Hugging Face 缓存的本地模型,往往每个都有数 GB。
在上面那台 Mac 上,这些是整次扫描中最大的来源。每一项都来自当时有用的工作。
这类数据比缓存更需要小心。worktree 里可能有从未提交的更改。会话历史记录可能是某项更改原因的唯一记录。模拟器可能正在运行。Wipecraft 会锁定这样的行:有未提交更改的 worktree、已启动的模拟器、智能体打开着的会话。你能看到它们,但不能选择它们。“由你决定”中的项目会进入隔离区,30 天内可以撤销。规则见撤销的方式。
接下来怎么做
如果你 Mac 上的系统数据很大,从“由你决定”开始。能一直保持空闲的空间就在那里,而且这部分需要由人来决定。缓存可以等,反正它们还会回来。
想在你自己的磁盘上看到同样的分组?Wipecraft 无需许可证即可扫描,扫描期间不会更改任何内容。