mo purge:项目构建产物清理
purge 扫描项目里的常见构建产物,按项目分组,用户挑选候选目录,确认后删除。
不进入废纸篓
mo purge 删除选中项目产物时使用永久删除。它们“通常能重建”不代表代价低,也不代表项目已经不需要。
参数与示例
| 参数 | 含义 |
|---|---|
--dry-run / -n | 预览候选和预计清理空间 |
--paths | 配置扫描根目录 |
--include-empty | 包含零大小产物 |
--yes | 明确允许非交互无人值守清理 |
--debug | 诊断信息 |
--help | 帮助 |
bash
mo purge --paths
mo purge --dry-run
# 审核后进入交互选择:
mo purge1
2
3
4
2
3
4
34 类识别名称
| 生态 | 目录名 |
|---|---|
| Node / Web | node_modules、dist、.next、.nuxt、.output、.turbo、.parcel-cache、.angular、.svelte-kit、.astro |
| Python | venv、.venv、__pycache__、.pytest_cache、.mypy_cache、.ruff_cache、.tox、.nox |
| Rust / Swift / Zig | target、.build、.zig-cache、zig-out |
| Android / Java | build、.gradle、.cxx |
| Flutter / Expo | .dart_tool、.expo |
| PHP / .NET / 通用 | vendor、bin、obj、coverage、Pods、DerivedData、.terragrunt-cache |
名称相同并不会自动获得删除许可。
多项目路径配置
mo purge --paths 写入 ~/.config/mole/purge_paths,例如:
text
~/Projects
~/Work/GameA
/Volumes/Workspace/Repos1
2
3
2
3
配置后只针对指定根目录扫描;否则使用上游默认搜索目录。扫描深度、符号链接、跨文件系统边界均有额外约束。
保护规则
- Git 已追踪文件、嵌套仓库、部署密钥等保护对象不会按普通缓存处理。
- 非 Composer
vendor、不符合 .NET 特征的bin等默认保护。 - 最近 7 天有活动或活动不确定的目录默认不勾选。
- 用户需要确认最终清理路径,扫描和删除间还要复核。
clean白名单与purge共用,详见 白名单。
关键提醒
Unity / C# 工程的 obj、Flutter 的 .dart_tool、Rust 的 target 可包含大量耗时生成资源。在缺乏空间压力时,保留它们经常更划算。