一条命令释放几十 GB:Mole Mac 清理工具与磁盘空间分析
【免费下载链接】Mole🐹 Clean, uninstall, analyze, optimize, and monitor your Mac. Free open-source CLI, plus a native Mac app.项目地址: https://gitcode.com/GitHub_Trending/mole15/Mole
Mole 是一款开源的终端 Mac 清理工具,装好后用mo命令就能深度清理缓存、连同残留卸载应用、分析磁盘空间、监控实时系统健康。它面向想腾出磁盘空间、又不想装一堆图形化维护软件的 Mac 用户:所有破坏性操作都能先预览,删除默认进废纸篓而不是直接抹除。
🚀 安装与第一次安全预览
Mole 需要 macOS 12 及以上,Intel 和 Apple Silicon 都能跑。最省事的方式是走 Homebrew:
brew install mole装好后先别急着删,跑一次预览看看会动哪些文件:
mo clean --dry-run--dry-run只列出候选路径、大小和分类,不改动任何文件。确认输出符合预期后,再执行真实清理:
mo clean清理结束会打印释放空间与文件数量,示例输出是Tracked cleanup: 4.5GB | Items cleaned: 97。想看整机状态就开mo status,它显示健康评分和 CPU、内存、磁盘、电池情况;把输出重定向到管道会自动切换为 JSON 格式,方便接监控脚本。
💾 核心能力拆解
磁盘空间分析:找出空间大户
可用空间紧张时,手动用du找目录既慢又难判断谁该删。mo analyze打开终端磁盘浏览器,首屏按大小列出 Home、User Library、Applications 等顶层目录和占比条,支持逐层下钻、过滤与多选,选中项确认后才移入废纸篓。
mo analyze也可以指定路径只看局部,或者生成一次性 JSON 报告给脚本消费:
mo analyze /Volumes mo analyze --json ~/Documents示例里首屏直接给出 75.4 GB 的 Home 中谁最大,当场处理即可,不必在文件管理器里翻目录。
应用残留卸载:清掉偏好设置和缓存
应用拖进废纸篓后,~/Library里通常还留着偏好设置、缓存和登录项。mo uninstall列出已安装应用及大小、最近使用时间,选中后先展示移除清单,包括本体、对应的 Application Support、Preferences 等。
mo uninstall --dry-run其他已装应用仍在使用的共享数据会被保留。README 示例中移除 Photoshop 2024 释放 12.80 GB,而应用本体只有 4.20 GB,差值全是残留。如果应用本体已删、只剩数据,用mo clean扫一遍收尾即可。
构建产物清理:只删可重建的目录
项目里堆积的node_modules、target、build、dist这类目录都属可重建产物。mo purge按项目分组候选项,近 7 天内有文件活动或活动状态无法确认的目录默认不选;包含部署密钥对、嵌套 Git 仓库或 Git 跟踪文件的目录直接受保护。
mo purge --dry-run非交互调用必须显式加--yes才会执行。示例中选中两个项目产物释放 6.00 GB,不会误伤工作区本身。
🔒 它如何避免误删
所有删除调用都汇入同一个validate_path_for_deletion校验:空路径和相对路径会被直接拒绝,符号链接会被解析后再查(包括祖先层级的链接,防止被链接悄悄绕进受保护目录),/System、/Library/Apple、com.apple.*等受保护路径还会复检一次。只要无法证明某项安全,操作就被跳过或直接拒绝,而不是"看起来像缓存就删"。
删除默认去向是废纸篓而非直接抹除,mo purge是例外:确认项是永久删除。每次操作会记入~/Library/Logs/mole/operations.log,随时用mo history回看。权限上,以 root 运行mo会被立即拒绝,涉及系统级文件时 Mole 自行请求管理员权限,你不需要 sudo。架构上mole入口脚本只是个路由器,清理与卸载逻辑拆分在lib/下的 shell 脚本,mo analyze和mo status两个交互式子命令由 Go 实现。完整威胁模型见 docs/SECURITY_DESIGN.md。
⚠️ 避坑与边界
- 平台限制:官方只有 macOS 12+ 版本,Windows 仅有实验分支,Linux 用户需另选工具。
- 权限用法:不要用 sudo 启动,root 下运行会立即拒绝,系统级文件由 Mole 自动请求管理员权限。
- 永久删除命令:
mo purge不进废纸篓,务必先mo purge --dry-run审查候选,非交互模式还需显式--yes。 - 不想被清的缓存:用
mo clean --whitelist保护(持久化在~/.config/mole/whitelist),维护任务用mo optimize --whitelist同理排除。 - 默认扫描范围:
mo analyze的默认概览不含外置磁盘,需要时显式跑mo analyze /Volumes。 - 大目录扫描耗时:扫大目录较慢,尽量指定具体路径(如
mo analyze /private/tmp)而不是全盘扫。
📚 延伸阅读
- docs/SECURITY_DESIGN.md:威胁模型、路径校验与应用保护机制的完整说明,想弄清"如何不误删"先读它。
- lib/core/:核心 shell 实现,删除漏斗
file_ops.sh与应用保护app_protection.sh都在这里。 - tests/:覆盖清理、卸载、purge 全流程的 Bats 回归测试套件,也是行为边界的第一手依据。
如果 Mac 可用空间已经告急,先跑一次mo clean --dry-run看能回收多少,确认后再执行清理,然后用mo analyze找下一批空间大户。
【免费下载链接】Mole🐹 Clean, uninstall, analyze, optimize, and monitor your Mac. Free open-source CLI, plus a native Mac app.项目地址: https://gitcode.com/GitHub_Trending/mole15/Mole
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考