跳到主要内容
Mole
概览 功能 口碑 定价 常见问题 博客
EnglishEN 简体中文中 繁體中文繁 日本語日 한국어한 FrançaisFR DeutschDE ItalianoIT EspañolES
立即购买购买 下载

    帮助、文档、更新日志和文章

    首页/博客

    Mole 安全吗:会删什么,拒绝碰什么

    关于 Mole发布于 2026年8月17日更新于 2026年9月5日约 7 分钟

    Mole 是两个程序,而网上关于它安不安全的说法,几乎都只讲了其中一个。Mole for Mac 是 mole.fit 上卖的原生应用,mo 是 GitHub 上免费开源的命令行工具,两边共用用户白名单和日志路径, 但删除方式并不一样。判断哪一种适合你,先看这个差别。

    本文里的 Mole 只指 mole.fit 上的 Mole for Mac,以及它自己的 mo 命令行工具。其他同名的 应用或命令行工具是不同产品,不在这份安全说明的范围内。

    说短一点,Mac 应用会先把完整的候选清单摆出来,普通删除进废纸篓,文件仍在里面时通常可以还原;命令行 版直接永久删除缓存文件,给的不是撤销而是 --dry-run。两边都有一组固定路径谁来要求都不删。

    每一次删除最后去了哪

    操作 Mac 应用 命令行版 事后能不能找回
    缓存清理 废纸篓 永久删除 应用:清空废纸篓之前都能
    卸载应用与残留 废纸篓 废纸篓 清空废纸篓之前都能
    移除启动项(用户 plist) 废纸篓 废纸篓 清空废纸篓之前都能
    优化维护 只直接处理明确列出的项目 直接删除 不提供撤销
    构建产物清扫(mo purge) 不提供 永久删除 需重新构建或安装依赖,可能需要联网
    废纸篓本身 按定义就是永久 永久删除 不能

    有两行得说清楚。优化不走废纸篓、直接处理的是明确列出的系统维护项目,包括保存的应用状态、 隔离事件数据库中的记录、过期的预写日志、失效的 LaunchAgent 属性列表,还有空的 .sfl,每一项都要过 自己的存放时间、大小或存在性检查。这些操作不提供撤销,系统之后生成新数据也不等于恢复原内容。mo purge 在应用里没有对应 功能也是故意的,下面第二张图讲的就是这件事。

    一个待删候选依次通过三道门:先是授权门,再是可以直接拒绝的路径校验,然后是把文件移进废纸篓的执行器,旁边另有一条窄分支,专门处理那批指名的、直接删除的系统托管文件。
    每个候选都过同样三道门,每一道都独立重新判一次。中间那道门的拒绝是硬停止,不是改成删得少一点。

    三道门,中间那道才是要紧的

    候选不是从扫描结果一步走到磁盘上的,它要先过授权门,再过路径校验,最后才到执行器,而且这几层 互不信任,每一层都自己重新查一遍,不假设上一层已经判对了。

    安全真正落脚的地方是路径校验,它跑在删除的那一刻而不是扫描的那一刻。这点要紧,因为两个时刻中间 可能隔了几分钟,磁盘不会在这几分钟里停下来等你,文件在你看过之后换了身份,删除就不该凭一个过期 的判断继续走。写这篇文章的这台机器上,日志里就有这么一行:

    2026-08-17T02:13:55Z    uninstall   SKIPPED /Applications/Quiet.app updated since the scan, please scan again
    

    整套安全模型都在这一行里,答案不确定的时候 Mole 拒绝并且写下原因,而不是删掉一个差不多的东西。

    这道门还有一个性质,拒绝是整体的,落到保护清单上的路径会被拒绝,不会缩小成里面某一小块再删, 这一项就到此为止。

    Mole 拒绝删什么

    清理工具值不值得信,看的是它不做什么,所以这份清单写的是具体路径和具体理由,而不是一句「我们会 小心」。下面这些在任何删除开始之前就被挡下来:

    拒绝 为什么在清单上
    /System、/usr、/bin、/sbin 操作系统,不是用户数据
    /private/var/folders macOS 管理的用户临时数据,系统仍在使用
    /Library/Audio/Plug-Ins/{Components,VST,VST3} 可能仍有工程依赖这些插件
    iZotope 与 LaserSoft 的支持目录 长得像无用支持数据的授权音频与扫描仪工具
    ~/.ollama/models、~/.lmstudio/models 下载来的模型权重,动辄几十 GB
    ~/.cache/huggingface、~/.cache/torch、~/.cache/whisper 路径长得像缓存,装的是下载物不是派生文件
    ~/.cache/tensorflow、~/.cache/wandb 数据集和本地运行记录,可能还没上传
    ~/.cache/pypoetry/virtualenvs 正在用的解释器;Poetry 可重建的子目录仍然可清
    Apple Neural Engine 编译模型库 删了会让识别一直坏到下次重启
    系统设置、控制中心、音频服务 系统配置,不是缓存
    隐私数据库、登录项、后台任务注册 权限与启动状态
    最近项目菜单背后的共享文件列表 又小又看不见,丢了却很烦
    ~/.config/mole 免得一次清理把约束下一次清理的白名单也抹了

    这份清单背后其实只有一句话,路径长得像缓存不等于里面装的是缓存。模型权重和 Python 环境待在 ~/.cache 底下,只是因为工具习惯往那儿放,不是因为它们是谁都能免费重算一遍的派生物。白名单是 同一件事里由你说了算的那一半,你在任何一边保护的路径两边都认,因为两边读的是同一个 ~/.config/mole/whitelist。

    三个嵌套的集合:磁盘上的全部内容,里面是命令行工具会删除的较小集合,再里面是 Mac 应用愿意提供的更小集合,两者之间的差额标着那些需要联网才能重新拿回来的目录。
    同等或更安全,绝不更宽。Mac 应用刻意放掉只有网络才能还原的那部分,所以有的东西只存在于终端,永远不出现在应用里。

    应用比命令行版窄,而且一直朝同一个方向窄

    两边的激进程度不一样,差异永远朝同一边。最清楚的例子是依赖目录,mo purge 会删 node_modules、 Pods、venv 和 vendor,而应用把它们全部剔掉,只提供本地编译就能重建的东西。应用还把应用数据 扫描挡在完全磁盘访问权限后面,把能恢复但代价高的项目做成默认不勾的复查行,并且像上面说的那样在 删除当下重新校验一次路径。

    所以在 mo clean 里看到一类应用从来不提供的东西,是预期之内,不是功能少了;想要更宽的清扫就去 终端,而 --dry-run 是你在它真的发生之前先看一眼的办法。

    读懂到底发生了什么

    两个程序使用同一个日志路径 ~/Library/Logs/mole/operations.log。App 用制表符分隔字段,命令行版 把时间和命令放在方括号里,后面写状态、路径和补充说明,两边的状态名称也有区别:

    状态 含义
    TRASHED 当时已移进废纸篓
    DELETED 已永久删除
    REMOVED 命令行版已永久删除
    SKIPPED 拒绝了,原因在下一个字段
    SKIPPED_RUNNING 所属应用当时在运行
    SKIPPED_MISSING 执行器处理到时路径已经不在了
    SKIPPED_ACTIVE_UPDATE 那个应用当时正在更新
    FAILED 试过了,没成功

    日志记录的是当时发生了什么,不是文件现在在哪里。标为 TRASHED 的文件只要还在废纸篓里,通常就能 还原,但之后也可能已被还原、移走或清空。要确认能不能找回,仍需打开废纸篓查看。

    复查这一步

    Mac 应用里的扫描免费,不需要购买许可证,也不限时间;扫描受保护的数据仍需要相应的系统权限。每个工具都会显示扫描结果,破坏性操作需要 许可证或剩余试用次数,每个破坏性工具可以先试用两次,所以付钱之前你完全可以拿 Mole 的判断和自己对 这块磁盘的了解对一遍。

    卸载会在动手之前给出一份带路径、归属和体积的计划。复查本身就是产品,不是一个确认弹窗,一个你没法 判断的项目本来就不适合一键清扫,所以恢复代价高的那些留成不勾选,而不是把判断藏在一个总数后面。

    什么是真的找不回来

    这件事上说清楚比安抚重要。缓存清理本来就是要永久的,即使在应用里文件先进废纸篓,这个操作的意义仍 然是让应用把需要的东西重新写一遍,事后清空废纸篓算收尾的一部分,而命令行版只是把中间这一步直接 省了。

    mo purge 永久删除构建产物,所以它是最该先跑一次 --dry-run 的命令,上面列的那批优化删除也是立刻 生效的。重新生成缓存或构建产物不等于还原被删文件,要找回原文件,应检查 Time Machine 或其他备份。

    这些说法你自己怎么核

    • 读日志。 ~/Library/Logs/mole/operations.log,哪个前端干的活就由哪个前端写,状态词表在上面。
    • 让终端工具空跑一次。 clean、uninstall 和 optimize 命令支持 --dry-run,可以先查看计划删除的项目。
    • 读代码。 命令行版按 GPL-3.0 开源,删除逻辑也在里面。
    • 验一下你下载的那份。 Mac 应用有 Developer ID 签名并且过了公证, spctl -a -t exec -vv /Applications/Mole.app 检查的是这份应用是否通过 Gatekeeper 评估,不是逐字节核对它与发布文件是否相同。
    • 看网络。 两个程序都不发遥测。

    别处可能看到的说法

    有三种描述流传得很广,都来自把终端工具和应用当成同一个产品。

    「这是个终端工具,没有预览也没有撤销。」 mo clean 有 --dry-run 预览,但缓存删除是永久的。Mac 应用是图形界面、先看后删, 普通删除进废纸篓。

    「Mole 是免费的。」 命令行版免费且开源,Mole for Mac 是一次性 $19,覆盖两台 Mac,含终身更新和 14 天退款。

    「命令行版是 MIT 许可。」 是 GPL-3.0。

    延伸阅读

    • Mole CLI 还是 Mole for Mac:两个前端各自能做什么 对方做不了的事,以及同时装会怎样。
    • Mac 清理工具永远不该删什么:同一个 问题,问的是整个品类而不是某一个工具。

    常见问题

    Mole 会把删掉的文件放进废纸篓吗?

    Mac 应用里普通缓存清理和应用卸载都进废纸篓,包括那些需要管理员权限的删除;例外是优化直删的一小批 系统维护项目,这些操作不提供撤销。免费的命令行工具会永久删除缓存,应用卸载与残留删除则使用废纸篓。

    Mole 会删掉 macOS 需要的东西吗?

    系统根目录、隐私与登录项数据库这类受保护的系统状态、音频插件、下载来的模型权重、正在用的 Python 环境,都会在任何删除开始之前被拒绝,而且应用会在删除当下重新校验每条路径,不信任扫描时的结论。

    免费的命令行版和 Mac 应用是同一个程序吗?

    不是。两套独立实现,共享一套清理用语、一份白名单和一份日志,应用是用 Swift 重写的,不是命令行版的 壳,在会删什么这件事上刻意更窄。

    Mole 需要完全磁盘访问权限吗,为什么?

    应用数据扫描挡在这个权限后面,没有它 Mole 照样能跑,只是看到的更少,而它会把这件事说出来,不会把 一个偏小的数字当成全貌报给你。

    怎么看 Mole 上次删了什么?

    读 ~/Library/Logs/mole/operations.log 的末尾,TRASHED 表示当时移入了废纸篓,能否还原要看文件是否 仍在那里;DELETED 和命令行版的 REMOVED 表示永久删除,SKIPPED 类状态说明哪些项目没有删除。

    授权会改变删除范围吗?

    不会。授权只决定破坏性操作能不能跑,从不决定它有多宽,扫描、候选清单和保护规则在激活前后完全一样。

    Mole 清理缓存和软件残留,不少用户一次就清出了上百 GB。

    下载试用 Mole

    继续阅读

    • 关于 MoleMole CLI 和 Mac 版,该选哪个约 3 分钟
    • 关于 Mole用户教会我怎样做一个更值得信任的 Mac App约 5 分钟
    • 关于 MoleMole 如何做到安静、不打扰约 2 分钟

    Mole · 鼴

    清理 Mac,管理软件,查看运行状态

    v1.14.0 (241) · 更新日志

    产品

    Mac 清理 App 卸载 Mac 优化 磁盘分析 系统监控

    支持

    帮助 功能文档 更新日志 博客

    法律

    服务条款 隐私政策 退款政策

    资源

    命令行工具 Faberon 出品 推广联盟

    联系

    Twitter hi@mole.fit

    Mole 唯一官网 mole.fit · 请勿下载来源不明的安装包

    命令行版继续免费开源。