你的 Mac 现在有多少垃圾文件,是你完全不知道的?
我不是指那些2019年烧烤派对的重复照片,也不是那个简直快变成垃圾堆的下载文件夹。我说的是构建的临时文件,比如那些你疫情后就再也没碰过的 node_modules 文件夹、你甚至不记得安装过的框架缓存文件、堆积如山的 Xcode 的 derived data(派生数据),就像床底下的灰尘一样。
我好几个月磁盘空间占用达到了85%,每次删东西都跟玩杂技一样小心翼翼。直到我发现了Mole,运行了 mo purge --dry-run,屏幕上弹出了一个数字:17GB可回收空间。整理出来了三百五十个被遗忘的构建临时文件,还在那里静静地腐烂着。
十七个G!完全没有碰到任何照片或文档。
什么是Mole(以及它不是什么)
Mole 是一个适用于 macOS 的CLI工具,它声称可以“深度清理并优化你的 Mac”。它带有一些看起来像瑞士军刀一样多功能的命令菜单:
mo clean # 清理缓存、日志和临时文件 mo uninstall # 完全卸载应用程序 mo optimize # 检查并“优化”系统 mo analyze # 分析磁盘使用情况 mo status # 系统健康监控 mo purge # 删除项目构建临时文件 mo installer # 找到旧的安装包 mo touchid # 配置 sudo 使用 Touch ID
八个命令。直接告诉你吧:**只有两个命令值得你花费时间**。其余的从“嗯,这个我自己就搞定了”到“绝对不可能执行”都有。
## mo purge:低调的宝藏
如果你是开发者,并且用 Mac 已经超过六个月,那么`mo purge`会帮你发现隐藏的宝藏。简单来说,它会扫描你的项目目录,找出那些占用空间却对你完全没有帮助的构建临时文件。
都有哪些类型的临时文件?基本上都是常见的“嫌疑人”:
- **node_modules**(你几个月没碰的 Node/Bun 项目)
- **target/**(Rust 项目)
- **build/** 和 **.build/**(Swift/Xcode 项目)
- **DerivedData**(Xcode 的派生数据)
- **__pycache__** 和 Python 的虚拟环境
- **.gradle** 和 **build/**(Java/Kotlin 项目)
- **Pods/**(iOS 的 CocoaPods 项目)
这些文件夹的好处是:可以100%重新生成。如果你某天重新打开这个项目,运行一个`npm install`或者`cargo build`,它们会从零重新创建。但在此之前,这些文件像“赖账房客”一样,白占着你的磁盘空间不交房租。
### 正确的操作流程
首先,一切都从**干跑模式(dry-run)**开始:
```bash
mo purge --dry-run
这个命令会显示找到的内容以及可以释放的空间大小,但不会实际删除任何内容。你需要利用这个阶段检查列表,并确定它不会误删掉你正在使用的项目文件(比如你当前有几个窗口正在打开一个项目的node_modules)。
如果你对结果满意:
mo purge
然后,就这样,你的磁盘空间立马多出了十几GB。简单粗暴。
配置扫描路径
默认情况下,Mole 会扫描一些常见路径(比如~/Projects、~/GitHub、~/Code……)。如果你的目录结构比较独特,——一般稍微有点条理的工程师都会自定义路径——你需要手动配置一下:
mo purge --paths
它会打开一个编辑器,你可以添加自己的实际路径。比如我的路径是~/code 和 ~/courses。如果不配置这个,Mole 就会扫描一些根本不存在的文件夹,同时漏掉那些真正重要的路径。
mo analyze:发现“隐藏的小金库”
mo analyze 是另一个宝石级别的命令。它会启动一个互动式的 TUI(终端界面),展示你的磁盘空间使用情况,按目录大小排序。
mo analyze # 分析主磁盘
mo analyze /Volumes # 分析外部磁盘
它就像 Disk Inventory X 或 GrandPerspective,但运行在终端中,无需安装图形化应用程序。
为什么它有用?因为磁盘空间的问题从来不是“我需要删点东西”。真正的问题是:“我根本不知道究竟是哪些东西占用了50GB。” mo analyze 可以在几秒内给你答案。通过它,你可以浏览目录树,查看哪些文件夹占用空间最大,再做决定。
与手动du -sh * | sort -rh相比的优势在于:TUI 界面允许你在不同目录之间切换,而无需重新运行命令。进出、比较,一切变得更快速直观。
其他命令?嗯……
接下来说点不好听的:Mole的其他命令从“可有可无”到“完全没必要”不等。
mo clean:几乎没什么用
清理系统缓存、日志和临时文件。听起来不错,但macOS 本身已经自动管理了这些大部分缓存。而那些并不自动管理的缓存(比如 Homebrew 或 Docker 的缓存),其实你自己手动清理更好,因为你知道哪些需要保留,哪些可以删掉。
能释放出来2-3GB空间?有可能。但是这种自动清理是否值得?如果你的磁盘空间真的紧张到需要节省这2GB,那么mo purge可能早就帮你释放了10倍的那部分空间。
mo optimize:黑盒操作
“检查并维护系统健康,应用优化”。问题是:究竟是哪些优化?它具体干了啥?文档说得太模糊,我个人不喜欢运行那些无法具体知道它改动内容的“黑盒”工具。
你可以运行 mo optimize --dry-run 查看会执行的操作,确实可以看看。但根据我的经验,这个命令所谓的“优化”无非是检查磁盘权限、清理失效的字体、重新构建 Spotlight 索引。这些要么是 macOS 已经在做的事,要么在一切正常的情况下完全没必要。
mo uninstall:用处很有限
它的功能是卸载应用程序时一并删除遗留的支持文件(比如偏好设置、缓存等),这些文件在你将应用拖到废纸篓时会被遗留。基本上,它就是命令行版本的 AppCleaner。
如果你经常卸载应用程序,那它确实有点用。如果不常卸载,意义不大。
mo status:只是好看
一个在终端显示 CPU、内存、磁盘、以及电池状况的仪表板。没错,看起来不错。但你已经有了工具,比如htop、btop、Activity Monitor,或者直接问一个 AI 助手“内存使用情况如何”,可以得到更直接的答案。
总结:少即是多
Mole 有八个命令。两个是纯金。其余的只是填充内容。
mo purge 解决了一个现实问题,而其他 Mac 清理工具从未解决过:开发人员的构建临时文件。它不是简单删缓存,希望你能发现点变化。它找到具体的构建垃圾,告诉你它的体积,并移除它们。所有内容都可以重新生成,没有风险。
mo analyze 解决了另一个现实问题:不知道磁盘空间是被啥占用了。无需图形界面,无需等待Finder索引,也无需反复运行du命令。它提供了一个快速的互动式地图,让你明白磁盘空间问题的根源。
只靠这两个命令,我的电脑在一分钟内释放了17GB。而且每个月我都可以重复执行一次——垃圾会像脏衣服一样持续堆积,但现在我有了一台性能强劲的“洗衣机”。
# 你的新月度维护仪式
brew install mole # 安装一次
mo purge --paths # 配置你的目录(只需一次)
mo purge --dry-run # 查看清单
mo purge # 清理垃圾
mo analyze # 研究还可以删除什么
额外福利:自动化全套维护
如果 mo purge 足够安全——它确实是,因为它删除的内容都可以通过install或build重新生成——为什么不把它和brew upgrade一起自动化呢?
“不过等下,brew upgrade自动化会不会出问题?”一个合理的担忧是:Python或Node升级可能会破坏某些项目。2026年的答案是:不会,前提是你对每个项目使用独立的版本管理工具。比如 uv 为每个项目独立管理 Python 版本(uv python install 3.x),因此brew upgrade python不会影响你的虚拟环境。Node 也一样,如果你用的是fnm或nvm。Homebrew 中的 Python 或 Node 是系统用的,你的项目跟它们没关系。
解决了这个问题后,一个每周自动运行的 LaunchAgent 一定会让你获益:
#!/bin/bash
# 更新 Homebrew
brew update && brew upgrade
brew cleanup --prune=30
brew autoremove
# 清理开发构建临时文件
mo purge --yes
每周日早晨醒来,你的Mac上所有软件都是最新的,死掉的 node_modules 占用空间全被清理,甚至还能收到一条总结消息发送到你的 Telegram 上。一切,全自动完成。
不过要注意:mo analyze 不适合自动化。探索磁盘是你自己的决定,不是一个计划任务能代替的。但每月自动purge一次后,打开mo analyze 看看还能清理什么多余文件,是个不错的习惯。
最好的软件不是拥有最多的功能,而是那些真正解决问题的工具。Mole 的命令可能多达八个,但其中真正有用的两个,绝对物超所值。