WTMemory 指南

Mac“系统数据”占用太大:它是什么,怎么缩小

2026年10月13日更新

Mac 上的“系统数据”是 macOS 无法归入任何命名类别的所有内容:缓存、日志、Time Machine 本地快照、交换文件和睡眠文件、应用支持数据;在开发者的 Mac 上,还有 Xcode 模拟器、Docker 虚拟磁盘和 AI 模型文件夹这类大件。缩小它的方法是用 du 找出最大的文件夹,清理其中可重新生成的部分,而不是去删系统文件。

macOS Monterey 及更高版本把这个类别叫作“系统数据”(在 Ventura 及更高版本中,它显示在 系统设置 > 通用 > 储存空间 中)。Big Sur 及更早版本叫作“其他”。Apple 不让你点开看里面有什么,所以本指南使用终端。如果你更喜欢图形界面,WTMemory 有一个免费的 Disk Explorer(磁盘浏览器)可以做同样的事。

Mac 的“系统数据”包含哪些内容?

具体的归类规则由 Apple 制定且没有公开,但通常是以下这些在占空间:

隐藏文件夹和资源库数据之所以会被算进这里,是因为储存空间设置按类型和位置给文件分类,而它们既不属于文稿,也不属于应用程序或照片。

怎么查看“系统数据”里有什么?

先给终端授予完全磁盘访问权限(系统设置 > 隐私与安全性 > 完全磁盘访问权限),否则很多文件夹会报 “Operation not permitted”,统计结果会偏小。然后测量这些常见嫌疑对象:

du -sh ~/Library/Caches ~/Library/Logs ~/Library/Developer \
  ~/Library/Containers ~/Library/Application\ Support \
  ~/.ollama ~/.cache ~/.npm ~/.gradle 2>/dev/null | sort -h

要看整个磁盘,就列出数据宗卷上最大的顶层文件夹。-x 让 du 只统计一个宗卷,-d 1 限制深度:

sudo du -xh -d 1 /System/Volumes/Data 2>/dev/null | sort -h | tail -15

然后深入最大的那个,例如 du -sh ~/Library/Developer/* | sort -h。系统管理的部分要单独检查:

tmutil listlocalsnapshots /         # local snapshots
sysctl vm.swapusage                 # current swap in use
ls -lh /System/Volumes/VM           # swap files and sleep image
sudo du -sh /private/var/folders /private/var/log /Library/Caches 2>/dev/null

这些数字和储存空间设置里的不会完全一致。储存空间设置计算可清除空间、快照和 APFS 克隆的方式与 du 不同。

怎么安全地缩小“系统数据”?

1. 重启 Mac

重启会清除交换文件和 /private/var/folders 中的许多临时文件。如果 sysctl vm.swapusage 显示用了好几 GB,光重启就能把它们收回来。如果交换文件不断增长,请参阅 内存占用指南。

2. 精简 Time Machine 本地快照

sudo tmutil thinlocalsnapshots / 20000000000 4

这条命令让 macOS 以最高紧急程度从本地快照中回收约 20 GB。快照只是还原点;Time Machine 备份盘上的备份不受影响。

3. 清理开发缓存

Xcode 往往是最大的单一来源。清空 ~/Library/Developer/Xcode/DerivedData,删除旧的 iOS DeviceSupport 文件夹,并删除不再使用的模拟器:

xcrun simctl delete unavailable   # simulators for runtimes you removed
xcrun simctl runtime list         # installed simulator runtimes (Xcode 15+)

在 Xcode 的 设置 > Components(旧版本中为 Platforms)中删除不需要的运行时,或者使用 xcrun simctl runtime delete。详见 Xcode DerivedData 指南。包缓存有各自的清理命令,见 npm、Yarn 和 pnpm 指南。

4. 用 Docker 自己的工具缩小 Docker 磁盘

运行 docker system df 查看镜像、容器、数据卷和构建缓存各占多少,再用 docker system prune 删除未使用的项目。只有加上 --volumes 才会删除数据卷,加之前请三思。Docker 磁盘空间指南 介绍了如何在不丢数据的前提下回收空间。

5. 删除不再使用的 AI 模型

Ollama 用 ollama rm <name>,~/.cache/huggingface/hub 用 Hugging Face CLI 的缓存命令。绝对不要把 ~/.cache/huggingface 整个删掉,因为里面可能有你的访问令牌。参见 AI 模型存放在哪里。

6. 清理你能认出来的缓存和日志

当对应的应用关闭时,~/Library/Caches 和 ~/Library/Logs 中的文件夹可以逐个安全删除。应用会重建所需内容,所以下次启动可能会慢一些。只有确定某个应用已经卸载时,才删除它的 Application Support 文件夹。

7. 清倒废纸篓

移到废纸篓的东西在清倒之前仍然算作已用空间。

“系统数据”里哪些东西不能删?

为什么“系统数据”删了又涨回来?

很大一部分本来就会这样。使用应用时缓存会重新填满,内存紧张时交换文件会增大,Time Machine 大约每小时创建一个新的本地快照。磁盘快满时,macOS 会自动释放可清除空间和快照。如果它持续增长、从不回落,通常是某个具体原因:只增不减的 Docker 磁盘、每次 Xcode 更新新增的模拟器、某个模型文件夹,或者某个疯狂写日志的应用。上面的 du 命令会告诉你是哪一个。

想全面清理,包括“下载”文件夹和大文件,请参考 磁盘空间清理指南。

有没有不用终端就能看到这些的应用?

WTMemory 是一款原生菜单栏 App,支持 macOS 12 及以上版本。它免费的 Disk Explorer(磁盘浏览器)让你选择一个文件夹(比如 ~/Library),比较其中最大的直接子项,并列出其中最多 50 个最大的文件(包括隐藏文件),还能在访达中显示(Reveal in Finder)。免费的 Storage(储存空间)和 AI Tools(AI 工具)视图会估算受支持的开发缓存和模型文件夹的大小。升级 Pro(一次性 $9,最多三台 Mac,7 天试用)后,你可以选中受支持的项目、阅读删除后果说明,核对后将其移到废纸篓。它从不自动删除,Docker 虚拟机数据不在清理范围内。它不会清理系统文件、交换文件或快照;这些由 macOS 按上文所述自行处理。

下载 WTMemory

常见问题

Mac 上的“系统数据”是什么?

“系统数据”是一个储存类别,用来存放 macOS 没有归入应用程序、文稿、照片或其他命名类别的文件。它包括缓存、日志、Time Machine 本地快照、交换文件、应用支持数据,以及 Xcode 模拟器、Docker 磁盘映像等开发数据。

删除“系统数据”安全吗?

不能整体删除。只清理可重新生成的特定项目,比如应用缓存、Xcode DerivedData、不用的模拟器和本地快照。不要整个删除 /System、/private/var 或 ~/Library。

为什么我的 Mac“系统数据”这么大?

在开发者的 Mac 上,常见原因是 Xcode 模拟器和 DerivedData、Docker 的虚拟磁盘、本地 AI 模型、包管理器缓存以及 Time Machine 本地快照。用 du 找出是哪一个。

重启能减少“系统数据”吗?

通常能减少一些。重启会清除交换文件和许多临时文件,如果之前交换文件用得多,能回收好几 GB。

“系统数据”以前叫什么?

macOS Big Sur 及更早版本把这个类别叫作“其他”。之后的版本改名为“系统数据”。

相关指南