Mac 上的应用卸载工具

更新于 · 作者

把一个应用拖进废纸篓,走掉的只是这个应用。缓存、偏好设置、支持文件夹和登录项都还在——散在大约三十个你这辈子也不会去的地方。hop 把它们找出来,一并带走。

macOS 菜单栏中的 hop 面板:app uninstaller
app uninstaller in hop at a glance
what it isapp uninstaller inside hop, a menu bar app for macOS
pricefree — no trial, no pro tier, no account
licenceMIT, source on GitHub
requiresmacOS 14 or later, Apple silicon or Intel
works offlineyes
data sent anywherenone
download hopfree · macOS 14+ · Apple silicon and Intel

macOS 没有应用卸载工具

访达里没有卸载命令,系统设置里没有卸载面板,命令行里也没有对应的东西。Apple 自己的说明是:先看这个应用有没有自带卸载程序,如果没有,就把它从「应用程序」拖进废纸篓。官方答案到此为止。

Apple 的说明,全文(英文页面): 在 Mac 上删除或卸载应用

废纸篓到底带走了什么

应用包,别的什么都没有。一个应用写下的东西远不止这些:偏好设置在一个资源库文件夹里,缓存在另一个里,支持数据在第三个里;来自 App Store 的还有自己的容器,有时候还有一个登录项和一个后台助手。把应用包拖走,这些统统留在原处。

大多数时候这只是杂物。偶尔要糟一些——你为了修好某个毛病重装了应用,它带着你正想逃开的那套坏设置回来了,因为它的旧偏好设置哪儿都没去。

命令行能给你什么

比它的名声少。人们被指向的那条命令是「pkgutil --forget」,而它自己的手册页把它做的事说得很白:丢掉关于一个安装包的回执数据,但不碰已安装的文件。它让 macOS 忘掉曾经跑过一个安装程序。那个安装程序放到硬盘上的每一个文件,都还在原来的地方。

用手翻 ~/Library 能走得更远一点,然后撞上第二堵墙:终端没有完全磁盘访问权限之前,shell 读不了其中一些文件夹。向它要一个它没有权限的容器,它回你「Operation not permitted」,而这从外面看,跟「这里什么都没有」很像。

「--forget」做什么、不做什么(英文页面): 忘掉一个安装包 — MacAdmins 文档

为什么 shell 访问那些文件夹需要权限(英文页面): 在 macOS 中控制应用对文件的访问

Mac 上的卸载工具值不值得装

用手做这件事,既不花钱,也不损失质量。它花的是「知道有这么回事」:macOS 把这些碎片撒在哪儿、怎么从一个应用的 Info.plist 里读出它的标识符,以及那三十来个位置里哪些会出现这个标识符。Apple 的说明比问题本身早结束了一步。

余下的代价是风险:用手做的删除,最后落在一条你自己推断出来的路径上的「rm」,而「rm」没有撤销。这两样哪一样要紧,完全取决于你要删的是什么。

你要办的事免费路径用 hop
删掉一个从 App Store 装的应用拖出去,再把它在 ~/Library/Containers 里那一个文件夹删掉——两次拖动就完事用不上——那两次拖动就够了
一个你已经信得过的免费卸载工具AppCleaner 干这件事干了很多年,而且不花钱光为这一件事,没有换的理由
从命令行做这件事没什么可跑的:「pkgutil --forget」丢掉回执,每个文件都留着往那一行上一放就好
一次能收回来的删除「rm」是终局,一个报个数字就走人的清理工具也是一切先进废纸篓,出错的代价是还原一次
只想办这件事,不想要一整套维护软件付费清理工具把卸载卖在一份订阅里,外带二十来件别的工具一个免费应用的一个模块,不用账号

所以简短版是这样:App Store 的应用两次拖动就够,不需要帮手。AppCleaner 已经在你的 Mac 上的话,留着它。一个专门的卸载工具在别的一切上才挣得到自己的位置——从开发者网站装的应用、一年前删掉但文件夹还杵在那儿的应用,以及任何一次你希望能收回来的删除。

hop 的卸载工具会带走什么

你把一个应用交给它,在任何东西动起来之前,先看见这个应用长出来的整条尾巴:它在系统各处留下的每一块,每一块旁边都写着它有多大。一次确认,全部一起进废纸篓——正是这一步,把「大概没事吧」变成一个你真做得了的决定。

哪个按钮做什么、那张残留列表是怎么读出来的、一次半途而废的删除会怎样——说明书这一头的内容,你自己语言的版本: 说明里的卸载应用

它走过的地方,正是应用真会写东西的地方:application support、缓存、偏好设置、容器、launch agents、插件、安装回执等等——大约三十处。

凡是 macOS 不肯交出来的,都会连同原因一起点名,而不是悄悄跳过:一个对什么都报告成功的卸载工具,是在给人讲故事。

已经进了废纸篓的应用照样认得出来,所以一次半途而废的删除能接着做完。早已消失的应用留下的残留也一样——它们单独列着,已经没有应用包可以拿来辨认它们了。

它是移进废纸篓,不是删掉

一个直接删除的卸载工具,离一个糟糕的下午只差一次点错。hop 拿走的一切都进废纸篓,所以出错的代价是还原一次,而不是丢一个文件——这也是确认那一屏把每一块都列出来、而不是数个数的缘故。

download hopfree · macOS 14+ · Apple silicon and Intel

把大小列出来,好让你看见空间去了哪儿

应用包和它的数据,分开称

列表里每个应用都标着它有多大,应用包和它的数据分开算。一个两百兆的应用坐在六个 g 的缓存数据上,很常见,而且看不见。删掉它到底能不能腾出值得折腾的空间,你在动手之前就知道,而不是之后。

你也可以只清掉某个应用的缓存,属于它的别的东西一概不碰,按大的在前排好。应用本身没毛病、只是缓存长疯了的时候,这一条很好用。同一个模块还会列出留在下载、桌面和文稿里的安装包,以及废纸篓和它的大小。

它是卸载工具,不是清理工具

hop 不承诺让你的 Mac 变快、腾出神秘的几十个 g,或者修好你本来不知道自己有的问题。那些承诺属于另一类软件,而那类软件的名声是自己挣来的。

它做的是删掉一个应用和它留下的东西。这就是全部的活儿。这个应用由各管一件事的模块拼起来,盯着磁盘和内存的是另一个。它报数字;它不卖给你针对这些数字的解药。

那个负责盯着数字的模块: Mac 的系统监视器

它和别的 Mac 卸载工具比起来如何

AppCleaner 免费,这件事做得好,也做了很多年;它就够用的话,没有换的理由。

付费的清理工具把卸载打包进一套维护软件里——扫描、清理、优化——然后为整套收一笔订阅费。

这个模块是给那些想把这件事办了、又不想在菜单栏里再添一个图标的人——以及那些宁愿删掉的东西先进废纸篓、而不是直接从世上消失的人。它免费,不需要账号,还附带 hop 会做的另外十八件事。

frequently asked questions

Mac 上有自带的应用卸载工具吗?
没有。macOS 的访达和系统设置里都没有卸载命令。Apple 的说明是:应用自带卸载程序就用它自带的,否则把应用拖进废纸篓——而这会把应用写在它自己的包之外的一切都留下。
能从终端卸载 Mac 应用吗?
做不干净。通常被推荐的命令是「pkgutil --forget」,而它的手册说它丢掉的是回执数据,不碰已安装的文件。而且终端没有完全磁盘访问权限时,它还读不了一部分资源库文件夹。
文件会被彻底删除吗?
不会。一切都移进废纸篓,所以误删的东西都能放回去。
它能找到一个应用几个月前留下的文件吗?
它会走过大约三十个 macOS 应用通常会写东西的位置,并且把已经消失的应用留下的残留单独列出来。一个应用刻意藏在不寻常地方的东西,它找不到。
已经在废纸篓里的应用还能卸载吗?
能。hop 照样认得出它,所以一次没做完的删除可以接着做完。
它会让我的 Mac 变快吗?
不会,我们也不想装作会。它删掉应用和它们的残留,这会腾出空间。速度是另一个问题。
能只清掉某个应用的缓存吗?
能,属于它的别的东西一概不碰。列表按大的在前排好。
这个卸载工具多少钱?
不要钱。hop 免费且开源,不需要账号,也不发遥测,而卸载工具是它的一个模块,不是一档付费功能。

other tools in hop

  • vpn switcherevery vpn your Mac knows about, one switch each.
  • clipboard historyeverything you copied — text, links, screenshots and whole files.
  • screenshotsan area, a window or the whole screen — marked up before it leaves the screen.

关于作者

hop 的作者 Anton Shakirov

开发 hop

开发 hop,也编写本站的每一页。十九个工具收在一个菜单栏图标下,MIT 许可,源码公开。issue 和邮件都由他本人阅读和回复。

download hopfree · macOS 14+ · Apple silicon and Intel