所有文章

如何在 Mac 上彻底卸载 App 及其残留文件

· 阅读约 7 分钟

把 App 从“应用程序”文件夹拖到废纸篓,只会删除 App 本身,别的什么也不会删。它的偏好设置、缓存、存储的窗口、数据,有时还有一个登录时启动的辅助程序,都会留在你的资源库文件夹里。大多数时候只有几 MB,但有时会有几 GB:视频剪辑软件的渲染缓存、游戏下载的内容、聊天 App 的消息记录。

简单来说:要彻底卸载一个 App,先退出它,把 .app 移到废纸篓,然后在 ~/Library 中删除以 App 名称或其 Bundle ID 命名的项目,主要在 Application Support、Caches、Preferences、Containers 和 Saved Application State 里。下面介绍如何安全地手动操作,以及 Folia Files 如何一次处理一个或多个 App。

先找找 App 自带的卸载程序

有些 App 安装的不只是一个程序包:驱动、系统扩展、菜单栏辅助程序、后台服务。开发者通常会提供卸载程序,放在原始磁盘映像里、App 的菜单里或设置里。如果有,请先用它:它知道通用方法猜不到的部分。之后再回来清理它留下的东西。

App 会把文件留在 Mac 的哪里

App 为你写入的几乎所有内容,都在个人文件夹的资源库 ~/Library 中,访达默认隐藏它。残留文件通常用以下两种名称之一命名:

  • Bundle ID,例如 com.example.notes:最可靠的线索;
  • App 名称,例如 Notes Pro:常见于 Application Support、Caches 和 Logs,但不那么确定,因为别的 App 可能有相似的名字。

删除之前想知道 App 的 Bundle ID,可以在终端中运行 mdls -name kMDItemCFBundleIdentifier /Applications/Example.app(换成 App 的真实名称)。

常见的位置,都在 ~/Library 中:

  • Application Support:App 自己的数据(数据库、下载的内容、插件)。往往占用最大。
  • Caches:App 可以重新生成的数据。可以放心删除。
  • Preferences:以 Bundle ID 命名的 .plist 文件。删除后 App 的设置会恢复默认。
  • Containers 和 Group Containers:沙盒化的 App(也就是大多数 App Store 的 App)把所有东西都放在这里。容器里也可能有你在 App 中创建的文稿。
  • Saved Application State:macOS 重新打开的窗口,在 .savedState 文件夹中。
  • HTTPStorages、WebKit 和 Cookies:网络和网页数据。
  • Logs:日志文件。
  • LaunchAgents:在登录时启动辅助程序的 .plist。如果删掉的 App 又冒出来,请看看这里。

通过安装包安装的 App,有时还会在磁盘根目录的 /Library 文件夹中放文件(例如 LaunchAgents、LaunchDaemons 或 Application Support)。这些文件为所有用户共享,删除需要管理员密码。

手动删除 App 的残留文件

  1. 退出 App;如果有菜单栏辅助程序,也一并退出。
  2. 把 App 从“应用程序”拖到废纸篓。
  3. 在访达中选取“前往”›“前往文件夹”(⇧⌘G),输入 ~/Library,然后按 ↩。
  4. 打开上面列出的每个文件夹,查找以 Bundle ID 或 App 名称命名的项目,把它们移到废纸篓。
  5. 不要马上清倒废纸篓。正常使用 Mac 一两天,如果没有任何问题,再清倒。

两条规则就能保证不丢东西:只删除明确属于该 App 的项目;把容器或只靠名称找到的文件夹移到废纸篓之前,先看看里面有什么,如果有想保留的文稿,先复制到别处。

用 Folia Files 连同残留文件一起卸载 App

Folia Files 的“Mac 保养”中有卸载工具:选取“工具”›“Mac 保养…”(⇧⌘M),然后选择应用程序。这里会列出 /Applications、/Applications/Utilities、~/Applications 和 Setapp 文件夹中的 App,并显示大小和上次使用时间。

选择一个 App,右侧会显示App 及相关项目:App 本身,以及在资源库中找到的所有残留文件(Application Support、Caches、Preferences、Containers、Group Containers、Saved Application State、网络和网页数据、日志、启动代理),每一项都有大小和路径。

Folia Files 的“Mac 保养”›“应用程序”:已选择 Reelcut,资源库中的残留文件已勾选

  • 通过 Bundle ID 找到的项目已勾选。
  • 容器、共享容器以及只靠 App 名称找到的文件夹会标注“可能包含你的文稿”,从不预先勾选。先看,再决定。
  • 点按卸载:App 会被退出,然后与勾选的项目一起移到废纸篓。没有任何东西被直接删除,在清倒废纸篓之前,都可以放回原处。

Pebble Chat 的容器和共享容器标注“可能包含你的文稿”,未勾选

一次卸载多个 App

在列表中按住 ⌘ 或 ⇧ 可以选择多个 App。右侧会把每个 App 和它的残留文件分组显示,按钮变为卸载 3 个应用(数量随你的选择而定)。它们会一起退出,一起移到废纸篓。

找出不再使用的 App

列表上方的菜单提供全部、未使用、App Store 和 Setapp。未使用指六个月未打开,或在这台 Mac 上没有任何使用记录。聚焦记录的上次打开日期经常缺失(例如迁移到新 Mac 之后),所以 Folia Files 还会查看资源库中该 App 自身文件的最近一次更改。按大小排序,就能先看到最大的 App。

“未使用”筛选、一起选择的三个 App 和“卸载 3 个应用”按钮

已删除 App 的残留文件

如果你多年来一直把 App 拖进废纸篓,残留文件和安装器标签会列出它们留下的东西:已删除 App 的残留文件 — 待检查,默认不勾选,因为 App 已经不在的文件夹不一定没用。这里还会列出被遗忘的安装器(仍在“下载”或桌面上的磁盘映像和安装包),这些默认已勾选。

macOS 需要的权限

  • 完全磁盘访问权限让 Folia Files 能读取整个资源库,包括容器。
  • App 管理(系统设置›隐私与安全性):macOS 可以阻止一个 App 修改或删除另一个 App。如果被拒绝,请在这里允许 Folia Files。
  • 通过 App Store 或安装器为所有用户安装的 App 属于系统。macOS 会要求输入管理员密码,整个选择只需输入一次。

App Store 版本

App Store 版本运行在 Apple 的沙盒中。你向它开放磁盘后,它就能读取资源库(需要时会询问)。对于为所有用户安装的 App,有了免费的 Folia Files Companion(foliafiles.com/companion/),它就能以同样的方式卸载,只需输入一次密码。没有 Companion 时,按钮会变为用访达删除…:访达会打开并选中该 App,你把它移到废纸篓(访达会要求输入密码),App 一消失,Folia Files 就会把勾选的残留文件移到废纸篓。

值得花这个工夫吗?

残留文件很少会拖慢 Mac。删除它们的理由是腾出空间、以后重新安装时能从干净的状态开始,以及清掉那些为一个早已不在的 App 持续运行辅助程序的启动代理。如果想全面了解是什么占满了磁盘,请阅读Mac 上的“系统数据”是什么。