ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

给 Mole 加清理规则:三步搭出你的自定义 Mac 清理方案

2026/8/30 11:08:37 拓冰建站 浏览量
给 Mole 加清理规则:三步搭出你的自定义 Mac 清理方案 给 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 clean扫过去一片干净——内置规则不认这种目录。Mole 是 Mac 上的开源命令行清理与优化工具但它的清理规则不止内置那几套整个 lib/clean/ 目录就是一组可插拔的 Bash 模块你在里面加一个脚本就能把自己的该删什么变成一条正式规则。不需要碰 Go 代码也不需要理解 Mole 的全部源码。内置规则覆盖不到的地方这套机制怎么补Mole 主入口mole把clean、analyze、optimize、status等子命令分发到各个模块其中清理流程本身用 Bash 编排每个 lib/clean/ 下的文件负责一类目标——dev.sh管开发工具缓存app_caches.sh管应用缓存brew.sh管 Homebrew 残留。这种模块化意味着扩展方式是照抄现有模块的写法再挂进主流程而不是向某个注册中心提交什么。规则覆盖不到你的目录那就给它补一个模块。Bash 还是 Go 怎么选Mole 的扩展空间分两层写哪种取决于你的规则长什么样Bash 脚本模块Go 代码位置lib/clean/ 下的.sh文件cmd/analyze/、cmd/status/适合删某目录里的某类文件、按时间清缓存、按条件跳过路径磁盘扫描、大目录分析、指标采集这类要处理量和逻辑的代码门槛会写find、函数就行改完source进去就生效得改 Go 工程跑测试随版本一起发布一句话你的规则只是把某个路径下的某类文件删掉走 Bash你要改的是 Mole 怎么扫描、怎么统计才动 Go。对绝大多数自定义清理需求答案都是前者而且 Bash 模块和 Mole 的清理管线无缝衔接--dry-run预览、超时控制、活动计数这些能力直接可用。从建脚本到跑通完整落地链路在 lib/clean/ 下新建脚本打开 lib/clean/dev.sh 看一遍现有模块的结构照着写。核心就三个动作定义清理函数、删之前查白名单、用安全删除函数代替rm# 自定义清理模块下载文件夹中 30 天未访问的文件 clean_downloads_temp() { local target_dir$HOME/Downloads # 查白名单命中保护规则就整段跳过 is_path_whitelisted $target_dir return 0 # 走 Mole 的安全删除管线而不是 rm safe_find_delete $target_dir * 30 atime f }注意find的写法要按 macOS 自带的 BSD 版来别用 GNU 的参数atime最后访问时间比mtime更贴合文件多久没被碰过。把模块挂进清理流程规则要生效得让主流程认识它。bin/clean.sh顶部有一段source列表把各模块读进当前 shell再往下是分区执行的清理步骤。你要做两件事在 source 区块加一行source $SCRIPT_DIR/../lib/clean/downloads.sh在对应分区加一步_run_cleanup_step clean_downloads_temp。漏掉任何一步规则都不会报错只会安静地不干活——这是最常见的翻车点。白名单怎么配置容易搞反的一点Mole 的白名单是保护名单不是允许删除的准入名单。~/.config/mole/whitelist里写一行一个路径模式命中即跳过不删——它的作用是让任何规则都别碰你圈起来的文件。白名单的读取与管理逻辑在 lib/manage/whitelist.sh。所以上面的脚本里先调is_path_whitelisted再动手这一步不能省哪天你把~/Downloads整个路径加进白名单这条规则应该整体跳过而不是删到一半才发现。验证先预览再真删最后看日志三步验证每步都知道自己在确认什么./mole clean --dry-run # 预演新规则应出现在预览列表里 ./mole clean # 正式执行执行完翻~/Library/Logs/mole/mole.log里面有每次清理的完整日志。预览里没看到预期条目说明上一步的挂载没成功回去查 source 和调用别急着真删。大目录与超时如果你的目标目录动辄几万文件find全量扫一遍可能跑很久。主流程已经给每个大分区套了超时比如 Cloud Office 段是 5 分钟你也可以参考 lib/core/timeout.sh 给自己的模块包一层到点跳过剩余项不卡住整个清理。踩坑速查规则静默不生效九成是漏了 source 或_run_cleanup_step调用——规则本身不报错只是没被跑到删了不该删的先查~/Library/Logs/mole/日志把对应路径加进~/.config/mole/whitelist下次任何规则都会跳过它shell 里命令能跑、进 Mole 就报错按 macOS 默认 Bash 3.2 和 BSD 命令写法来别用 GNU 扩展日志去哪找主日志~/Library/Logs/mole/mole.log操作日志在同目录operations.log想分享自己的规则按 CONTRIBUTING.md 的规范提交 PR跑./scripts/check.sh和./scripts/test.sh过一遍再发最小可执行动作现在就去lib/clean/建你的第一个.sh写完跑一遍./mole clean --dry-run——只要预览列表里出现你的目录链路就通了剩下的只是正式执行和看日志。【免费下载链接】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),仅供参考