项目目录垃圾清理

SKILL开发
开发 未标注权限 许可证不明确
安装这个技能

项目目录/工作目录的垃圾清理——当用户说「清理一下」「腾空间」「这些没用的删了吧」「归档一下」,或要处理渲染缓存(_mask*)、覆盖残留(*.old*)、一次性脚本、排查中间图时用。核心是「先全盘扫描→分档报价→逐档点头→带断言删除→写清单」。含 5 条实测安全判据与 3 个真踩过的坑。

一句话选型结论

按资料字段整理

项目目录垃圾清理是开发类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类开发 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_1572dda2/project-junk-cleanup
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

开发
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_1572dda2仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791682006
正文体量8.5 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
写代码与改 bug

按需求补代码、定位并修掉报错。

读仓库与生成改动

让模型读懂项目结构,再给出可落地的改动。

跑测试与排查故障

按现象排查问题,补测试用例并复跑。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在开发场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
项目目录垃圾清理当前 未标注权限 未标注 未标注 未标注 有
技能审查员 浏览器控制 ClawHub 市场 877.9 万 OpenClaw 有
Vercel React 最佳实践 浏览器控制 GitHub 仓库 849.1 万 Codex、Claude、Cursor 有
GitHub 代码协作 联网访问 ClawHub 市场 763.3 万 OpenClaw 有
网页设计指南 联网访问 GitHub 仓库 668.6 万 Codex、Claude、Cursor 有
本体论 只读 ClawHub 市场 663.7 万 OpenClaw 有

SKILL.md 全文

8.5 KB
模型实际读到的说明书原文,来自技能仓库

项目垃圾清理(扫描 → 分档 → 断言删除 → 留清单)

用户口径铁律:清理范围由用户拍板,不许自己扩档。
本技能的价值不是"删得多",而是删得敢删、且事后能追溯。


0. 铁律:先全盘扫描,再看已知目录

★ 我在 2026-09-16 就栽在这里:交接单说"某文件夹里有 8 个试制品",
我就只 glob 了那个文件夹,清掉 145 个 .old 后一补扫 —— 全盘实为 1603 个。
已知目录只是线索,范围必须靠 os.walk 全盘数出来。

for r, d, fs in os.walk(BASE):
    for f in fs:  ...

统计口径给两项:(占用 MB, 文件数)。用 Python 算,别用 shell 的 stat
(Git Bash 下 find | while read | stat -c%s 遇到中文路径会返回 0 —— 本次实测被骗过一次)。


1. 分档报价(用户只挑一档,别自作主张合并)

按「删了会不会后悔」分两档,先把数报清:

档 判据 例子
零风险 删了没有任何信息损失 *.old* 覆盖残留、_work_*.tmp 临时工程、排查中间 png、已逐字节验证过的重复 zip、纯缓存目录
需点头 能再生 / 是上一代,但要付出重跑成本 渲染掩膜缓存 _mask*、分类缓存、旧版 shp/tif、一次性脚本与笔记

报价时必须同时给「再生代价」(如"掩膜删了要重跑 prep_*_maps,慢"),
否则用户没法拍板。


2. 三条删除前断言(每条都是从事故边缘拉回来的)

2.1 .old* 墓碑:现役件必须存在 ★最重要

os.rename(p, p+'.old') 式覆盖会留下 X.old、X.old.old.old.old(每覆盖一次叠一层)。
删前断言去掉首个 .old 及其后所有后缀的"现役件" X 仍然在:

f = os.path.basename(p)
i = f.find('.old')
base = os.path.join(os.path.dirname(p), f[:i])   # town.cpg.old.old → town.cpg
if not os.path.isfile(base):
    keep.append(p); continue     # 现役件缺失 → 这是唯一副本,跳过并报出来
os.remove(p)

这条断言让"批量删墓碑"从危险操作变成安全操作,永远照做。

2.2 重复压缩包:逐文件 sha1 比对,别信文件名/大小

A.zip 与 A/ 目录同名不等于内容相同。本次删 139 MB zip 前跑了:

for n in zipfile.ZipFile(z).namelist():
    if n.endswith('/'): continue
    assert sha1(z.read(n)) == sha1(open(os.path.join(base, n), 'rb').read())

15/15 全等才删。有一个不等就整包留着。

2.3 先写清单再动手

清单内容 = 每个待删文件的 路径 + 字节数 + sha1前12,外加 freed_bytes / failures。
落盘到 03_归档与废弃\_清理记录_YYYYMMDD\清理清单*.json。
顺序必须是"写清单 → 删除",不能边删边记。


3. 只读文件:WinError 5

GDAL / WPS / ArcGIS 产出的文件常是只读(-r--r--r--)。直接 os.replace / shutil.rmtree
会 PermissionError: [WinError 5] 拒绝访问。标准写法:

# 单文件
st = os.stat(p); os.chmod(p, st.st_mode | 0o200)
try: ...改/删...
finally: os.chmod(p, st.st_mode & ~0o222)      # 还原只读

# rmtree
def on_rm_error(func, path, exc):
    os.chmod(path, os.stat(path).st_mode | 0o200); func(path)
shutil.rmtree(d, onerror=on_rm_error)

4. 动文件前先看进程(防文件锁)

MSYS_NO_PATHCONV=1 tasklist | grep -iE "arcmap|arcgis|wps|excel"
  • ArcMap 在跑 → 别动 .mxd(会删失败或拖挂)。
  • WPS 在跑(导 PDF 残留很常见)→ 只挪该目录的 png/中间图,别碰 docx/pdf。
  • 只挪不删更稳:os.replace(p, os.path.join(dir, '_debug', name))。

5. 收尾:复检 + 报告"实际释放"

删除后必须重扫一遍,给出三项实测,别只说"已完成":

残留 *.old* : 0 个
残留 _mask* 目录 : 0 个
目录现总体积 : 128.2 GB(清理前 132 GB)

(du 的块计账与按字节求和会有差;报告时用同一口径说清。)


6. 本类项目的高频垃圾清单(遥感/财政类项目实测)

模式 性质 档
*.old / *.old.old.old.old os.rename(p,p+'.old') 覆盖残留 零风险(带 2.1 断言)
_mask\ / _mask_prev\ / _mask_0915b\ 出图掩膜缓存,逐 AOI×期次×乡镇 需点头(可重跑再生)
_work_*.mxd ArcMap 临时出图工程 零风险
_旧图名.png / _cover_200.png / 封皮_*对比.png 排查中间图落在正式交付夹里 零风险(挪 _debug\,先别删)
_cache\(vidx_*.tif) 分类缓存 零风险
_*.py 散落在会话目录 一次性脚本 需点头
与目录同名的 .zip 可能是重复包 零风险但必做 2.2 校验
旧版 *.shp(v1/v2/v4/v5_fix*) 已被现行版取代 需点头,逐个列给用户标
*.tar.gz + 同名解包目录 压缩包与解压内容并存 零风险(先数解包件数,完整才删包)
extracted\(错位的第二次解包) 同一景解了三遍 零风险,逐字节比对主件后删
_cache_*.gpkg / _sas_cache.json 处理缓存 零风险(可重生)
*.rrd ERDAS 金字塔 零风险(同名 .img 在即可重建)
同一天多版本 X.shp/X_v2.shp/X_v3.shp 当日迭代链(尺寸常完全相同) 需点头,留最新 + 名字最"正式"的那个
_chk_*.csv / _diag_*.csv 质检/诊断导出 零风险(工具可重生成)
_cover_cmp\ / _verify_tmp\ 版式试制 / 校对临时 零风险

注意:同名的旧版图件可能是在产交付物(例:作物长势_逐图斑.shp 1.05 GB,
是甲方点名要的"长势按地块做")→ 大字标出来,明确说"未确认前不动"。


8. ★ 执行期两个坑(2026-09-16 实测,都吃过亏)

坑 A:脚本超时被自动重跑 → 输出说"跳过/不存在",实际首次已经删光

删 6 GB 级大文件时,前台脚本会被超时掐断、stdout 整段丢失;系统随后自动重跑一次,
于是第二次看到的全是"不存在 → 跳过"。只信这次输出会误判成"一项都没删"(当时 39 项已删,
输出却显示跳过 29 项)。
- 判据:报告"不存在"的项里,若包含你几分钟前刚亲眼扫到的大文件,就是重跑假象。
- 正确做法:删完后另起一个只读 probe 脚本逐路径 os.path.exists 复核 + 重算目录体积,
以 probe 为准,再把首次删除补记进审计清单(note 说明两次执行)。
- 预防:单批删除控制在 ≤5 GB,或改用后台运行。

坑 B:python -c "...\..." 里的反斜杠会被 shell 吞

r'...\' + x 经 bash 传递后变成 \,直接 SyntaxError: unterminated string literal(本次两次)。
- 规则:凡是跨多行、或含中文路径拼接的脚本,一律 Write 成 .py 再执行,不要用 -c。

坑 C:find / stat 在 Git Bash 下对中文路径会静默失败

stat -c%s 拿不到中文名文件的大小(返回空 → awk 求和为 0)。
- 规则:中文路径下统计一律走 Python os.walk + os.path.getsize,别用 shell 工具。


7. 汇报模板

  1. 分档表格(项 / 数量 / 占用 / 建议)
  2. 明确写「一个文件都没动」再问范围(扫描阶段)
  3. 执行后:逐档 动作 / 数量 / 结果 表 + 复检三项 + 释放总量
  4. 把没做的也列出来(漏扫更正、需点头项、不敢动项)—— 用户最需要知道的是边界

常见问题

5 问
答案由本站依据条目字段整理
项目目录垃圾清理怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_1572dda2/project-junk-cleanup。安装方式为未标注。装完刷新技能列表或重开客户端。

项目目录垃圾清理支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

项目目录垃圾清理权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

项目目录垃圾清理收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

项目目录垃圾清理用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。