白名单与配置保护
Mole 的清理保护不是一张全局名单,而是按命令场景分离。
三种经常混淆的配置
| 路径 | 对应命令 | 意义 |
|---|---|---|
~/.config/mole/whitelist | clean、purge | 需要保留的文件和目录 |
~/.config/mole/whitelist_optimize | optimize | 要跳过的优化任务或路径模式 |
~/.config/mole/purge_paths | purge | 工程扫描根目录,不是保护名单 |
mo uninstall 不接受 --whitelist;卸载中的个人数据由独立预览控制。 mo analyze 也有自己的安全路径检查,不应视作读取这份通用清理名单。
菜单设置
bash
mo clean --whitelist
mo optimize --whitelist
mo purge --paths1
2
3
2
3
clean 的保护菜单涵盖 Xcode、Gradle、Rust、Go、Python、JetBrains、Node、浏览器、Docker 等大量分类。
添加自定义受保护路径
先在 mo clean --whitelist 中进入并保存选项,再编辑 ~/.config/mole/whitelist,每行写一条规则:
text
# 我希望完整保留的项目与缓存
$HOME/Library/Developer/Xcode/DerivedData/*
$HOME/.gradle/caches/*
$HOME/Library/Caches/com.unity3d.*
$HOME/.Trash1
2
3
4
5
2
3
4
5
以上仅为示例。路径白名单支持按源码规则进行精确路径、目录父子关系及部分 glob 保护;一个受保护的子路径可能阻止其父目录整体删除。
不要直接覆盖原文件
一旦白名单文件存在,就会替换大部分“方便用户”的默认项,但 Mole 内置的强制安全保护仍会合并。先审查已有文件,再增量添加;不要使用 > 覆盖已有规则。
默认与强制保护的区别
- 便利默认:Gradle、Playwright、JetBrains、Ollama 模型、Surge 等,可被自定义文件取代。
- 强制安全:Finder 元数据、FontRegistry、Spotlight、CloudKit、Poetry 虚拟环境、renv 等,无论用户配置是否存在都会并入。
- 代码保护:凭据、Keychains、系统设置、OrbStack 状态、Codex 会话等按专用判断保护。
如果保护文件不可读取或安全状态无法判断,clean、purge、optimize 会保守停止,而不是忽略名单继续运行。
验证配置效果
bash
mo clean --dry-run --debug
mo purge --dry-run
mo optimize --dry-run1
2
3
2
3
重点检查“实际候选列表中是否仍出现受保护路径”,而不只是菜单的勾选状态。
参考源码
lib/manage/whitelist.sh · lib/core/base.sh · lib/core/app_protection.sh