清空 ~/Library/Caches 很少弄坏什么,也很少能把空间留住多久:几天之内应用就会把需要的内容重新造出来。真正有用的问题是里面哪个文件夹变大了、装的是什么,因为”缓存”这个词既包括可以丢弃的缩略图,也包括应用当作内容对待的文件。
基本原则:动某个应用的缓存文件夹之前先退出该应用,把文件夹移到废纸篓而不是直接抹掉,并让废纸篓放一天。
快速回答
- 先用
du -sh ~/Library/Caches/* | sort -h | tail -20量一量。 - 退出你打算清缓存的那些应用。
- 把单个子文件夹移入废纸篓,而不是整个
Caches文件夹。 - 别碰
/System/Library/Caches。 - 做好空间会随着使用回来的准备。
- 某个子文件夹特别大时,先去那个应用的设置里找上限。
~/Library/Caches 里有什么
macOS 维护三棵互相独立的缓存树,其中只有一棵归你管。
| 路径 | 归谁 | 能不能动 |
|---|---|---|
~/Library/Caches | 你的用户账户 | 能,按文件夹来 |
/Library/Caches | Mac 上的所有账户 | 谨慎,需要管理员权限 |
/System/Library/Caches | macOS 自己 | 不能,系统完整性保护看守着 |
在 ~/Library/Caches 里,每个文件夹都以创建它的应用的 bundle identifier 命名:com.apple.dt.Xcode、com.spotify.client、com.microsoft.VSCode。也有一些工具用普通名字,比如 Homebrew 或 go-build。
在访达里按 Shift-Command-G 就能进入该文件夹,在终端里则是:
du -sh ~/Library/Caches/* | sort -h | tail -20
输出按体积排序。大多数只有几 MB,不值得关注。
清空之后会坏掉什么
比大家想的少。
- 应用会重新生成或重新下载它需要的东西;
- 清空后的第一次启动更慢;
- 浏览器改从网络而不是磁盘取页面;
- 有些应用在重建缩略图之前会显示空白预览。
清缓存不会碰到的东西:
- 密码和其他钥匙串项目;
~/Library/Preferences里的设置;~/Library/Application Support和~/Library/Containers里的文稿与应用数据。
例外才是先看一眼的理由。少数应用把真正的内容停在 Caches 里:离线音乐、下载的视频、地图数据、邮件附件。文件夹名字写着缓存,内容却像你更愿意留着的下载。检查最大的三四个文件夹只要一分钟,问题就清楚了。
哪些文件夹占空间
重的文件夹来自你用得最多的应用。
- 浏览器。 Chrome 写入
~/Library/Caches/Google/Chrome。Safari 把缓存放在自己的容器~/Library/Containers/com.apple.Safari里,所以不会出现在上面的列表中。 - 流媒体和媒体客户端。 离线内容常常落在缓存文件夹里,而那正是”删除等于重新下载”的地方。
- 开发工具。
com.apple.dt.Xcode随每次构建和索引增长。Homebrew、go-build、Yarn、pip各有自己的文件夹。npm 的缓存则在~/.npm。 - 聊天和办公应用。 Slack、Discord 以及 Electron 应用普遍缓存得很大方,重建时也毫无怨言。
为什么空间会回来
缓存的存在是为了让应用跳过已经做过的活。你清掉,它就重新付一次代价,把文件写回去。一周之内,腾出来的空间大半就没了。
所以清缓存是一次性的缓解,不是解决方案。如果磁盘一次次被填满,原因在别处:快照、开发产物、大体积媒体或重复文件。macOS 在可用空间紧张时也会自己清理缓存,访达里显示为可清除的那部分就包含这些。
不出事的顺序
- 量一量各个文件夹,记下最大的三个。
- 打开这三个应用,在设置里找缓存或存储上限。Spotify、Chrome 和 Xcode 都有。
- 退出应用。
- 把它的缓存文件夹移入废纸篓,其余不动。
- 先正常用一天,再清空废纸篓。
- 再量一次,看看真正留下的空闲是多少。
第 5 步是最常被跳过的一步。它不花任何代价,却把不可逆的删除变成可逆的。
/Library/Caches 有什么不同
根级的 /Library/Caches 属于 Mac 上的所有账户,需要管理员权限。安装器、更新程序和一些贴近系统的服务往那里写。多数 Mac 上它比用户目录小,规则一样:只清你知道来源的那个具名子文件夹,其余留着。
/System/Library/Caches 是另一回事。它由 macOS 管理,系统完整性保护会拦下改动,任何清理工具都不该拿那里的空间向你承诺什么。
总结
删除 ~/Library/Caches 里的文件夹,对几乎所有应用都安全,作为习惯却没有意义。等到某个文件夹大到值得处理时再做:退出应用,把文件夹移入废纸篓,动手前看看应用在那里存了什么。至于那些反复消失的空间,去别处找。
常见问题
Mac 上的 ~/Library/Caches 可以删除吗?
清空 ~/Library/Caches 里的文件夹很少弄坏什么,应用会重新生成需要的内容。先退出应用,把子文件夹移到废纸篓而不是直接抹掉,清空之前先看一眼大文件夹:少数应用把下载好的内容而不是一次性数据放在那里。
删除 Library 缓存会退出登录或清掉密码吗?
不会。密码在钥匙串里,设置在 ~/Library/Preferences,应用数据在 ~/Library/Application Support 和 ~/Library/Containers。清空缓存文件夹不碰这些。只有少数应用把会话数据放在缓存里,之后会要求重新登录。
清理 Library 缓存能在 Mac 上腾出多少空间?
取决于你用哪些应用。浏览器、流媒体客户端和开发工具产生最大的缓存文件夹,单个就可能到几个 GB。先运行 du -sh ~/Library/Caches/* | sort -h | tail -20,看到你这台 Mac 上的真实数字,再判断这次清理值不值。
Mac 的缓存删掉之后还会回来吗?
会。缓存存在的意义就是让应用不必重复劳动,所以你继续用,文件夹就继续填。因此清缓存是一次性的缓解,而不是对反复被填满的磁盘的解决办法。
可以删除 /System/Library/Caches 吗?
别动它。这个路径由系统完整性保护看守,由 macOS 管理,里面没有属于你的应用的东西。你能管理的是用户级的 ~/Library/Caches。
一次性删掉所有缓存安全吗?
把整个 ~/Library/Caches 一次清空通常没事,但也会带走你从没看过的文件夹,以及应用当作缓存归档的下载内容。只清那几个大的子文件夹,能拿回几乎一样的空间,影响面却小得多。