简短回答:先退出 App,然后在访达中选取前往 › 前往文件夹,输入 ~/Library/Caches,把其中的文件夹移到废纸篓。浏览器缓存请在浏览器自己的设置中清除;如果网站打不开,可在“终端”中刷新 DNS 缓存。切勿删除 Caches 文件夹本身,也不要删除系统文件夹中的缓存。
什么是缓存
缓存是 App 可以重新下载或重新计算的内容的副本,保存下来是为了下次打开得更快,例如网页和图片、缩略图、预览、在线播放过的音乐、构建产物。缓存中的所有内容都可以重新生成,所以清除它是安全的。这也是缓存会再次出现的原因:只要您继续使用 App,它就会重新开始积累缓存。
Mac 上有三种值得了解的缓存:
| 缓存 | 位置 | 可以安全清理吗? |
|---|---|---|
| 应用缓存 | ~/Library/Caches | 可以,针对未运行的 App |
| 浏览器缓存 | 位于各浏览器自己的文件夹中 | 可以,在浏览器的设置中清除 |
| DNS 缓存 | 位于内存中,由 macOS 管理 | 可以,只需在“终端”中运行一条命令 |
| 系统缓存 | /Library/Caches, /System/Library/Caches | 交给 macOS 处理;需要清除的内容会在重新启动时清除 |
清除缓存何时有用
- 某个 App 显示旧内容、图片错误,或一打开就崩溃:清除该 App 的缓存通常能解决问题。
- 某个网站在一个浏览器中显示异常或内容过时,在另一个浏览器中却正常:清除该浏览器的缓存。
- 网站换了地址,或者换了新的网络或 VPN 后网站打不开:刷新 DNS 缓存。
- 磁盘快满了,而某个 App 的缓存已经增长到几 GB。
每周清除所有缓存并不会让 Mac 变快。清除后 App 会变慢一阵子,因为它们要重新积累缓存,而且几天内占用的空间就会恢复。
如何清除 App 缓存
- 退出想要清除缓存的 App。正在运行的 App 可能立刻重新生成缓存,或者在缓存消失时崩溃。
- 在访达中选取前往 › 前往文件夹(⇧ ⌘ G),输入
~/Library/Caches并按下回车键。 - 选取显示 › 为列表,再选取显示 › 查看显示选项,勾选计算所有大小并按“大小”排序。文件夹以 App 命名,例如
com.spotify.client或Google。 - 把想要清除的文件夹移到废纸篓。
Caches文件夹本身请保留原处。 - 重新启动,确认 App 都能正常使用后,再清倒废纸篓。
沙盒 App 的缓存保存在 ~/Library/Containers 中各自的文件夹里。有些 App 自带清除按钮,这样更安全:例如 Spotify 有Settings › Storage › Clear cache。
如何清除浏览器缓存
只清除缓存,您在网站上的登录状态会保留;同时清除 Cookie 则会退出登录。每个浏览器都可以让您自行选择。
- Safari:打开 Safari 浏览器 › 设置 › 高级,勾选在菜单栏中显示“开发”菜单,然后选取开发 › 清空缓存(⌥ ⌘ E)。历史记录 › 清除历史记录同样会清除缓存,但会连同历史记录和 Cookie 一并清除。
- Chrome:按下 ⇧ ⌘ Delete,或打开设置 › 隐私和安全 › 删除浏览数据。选择时间范围,只勾选缓存的图片和文件,然后点按删除数据。Edge、Brave 和其他基于 Chromium 的浏览器操作方式相同。
- Firefox:打开设置 › 隐私与安全,在 Cookie 和网站数据下点按清除数据。只勾选“缓存的网页内容”,然后点按清除。
若只想不使用缓存副本重新载入某一页,请在 Safari 中按 ⌥ ⌘ R,在 Chrome 和 Firefox 中按 ⇧ ⌘ R。
如何刷新 DNS 缓存
Mac 会在一段时间内记住每个网站名称对应的地址。网站换了地址,或者您切换了网络或 VPN 时,这份记忆可能指向错误的位置。打开“终端”并运行:
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
按提示输入密码;输入时屏幕上不会显示任何字符。完成后也没有任何提示。Mac 只是会重新查询每个名称。
开发者缓存
开发者工具会产生 Mac 上最大的一些缓存,每种工具都有各自的清除命令:
- Xcode:删除
~/Library/Developer/Xcode/DerivedData;下次构建时会重新生成。 - Homebrew:
brew cleanup会删除旧版本和下载文件。 - npm、pip 等:
npm cache clean --force、pip cache purge、uv cache clean。 - Docker:
docker builder prune会清除构建缓存。
哪些不要删除
/System/Library/Caches或/private/var/folders中的任何内容。它们由 macOS 管理,需要清除的内容会在重新启动时清除。~/Library/Caches文件夹本身。请删除其中的内容,而不是这个文件夹。~/Library中的其他文件夹,例如Application Support或Containers。它们存放的是 App 数据和设置,而不是缓存,其中还可能有您自己的工作成果。- 网上流传的、带有
sudo rm -rf的“清除所有缓存”终端命令。其中一个拼写错误,删除的就可能远不止缓存。
用 Tidy My Mac 清除缓存
Tidy My Mac 在一个窗口中完成以上每个步骤,在删除前先显示找到的内容,并将其移到废纸篓,方便您随时放回:
- Junk Cleaner 会列出 App 缓存、日志,以及 Xcode、Homebrew、npm 等的开发者缓存,并显示各自的大小。
- Privacy Cleanup 会按用户配置文件逐个清除 Safari、Chrome、Firefox 等浏览器的缓存、历史记录和 Cookie,并且绝不会触碰已保存的密码。
- Maintenance 一键刷新 DNS 缓存并清除字体缓存。
如果您清除缓存是为了腾出空间,要知道缓存很少是磁盘上最大的部分。其余内容请参阅如何释放 Mac 的磁盘空间。
关于清除缓存的常见问题
对于 App 和浏览器缓存,是安全的:其中的所有内容都可以重新下载或重新生成。请先退出 App,删除 Caches 文件夹里面的内容而不是文件夹本身,并把系统缓存交给 macOS 处理。
不会。缓存不包含您的文档,密码保存在钥匙串中,而不是缓存里。清除浏览器的 Cookie 是另一个单独的选项,会让您退出网站的登录。
通常不能。缓存的作用是让 App 更快,所以刚清除后 App 反而会变慢。当某个缓存损坏并导致 App 异常,或者磁盘太满、macOS 空间不足时,清除缓存才有帮助。
只在有原因时才清除:App 或网站出现异常,或者在快满的磁盘上某个缓存已增长到几 GB。按固定周期清除缓存没有任何好处。