mcpField
F
freeing-disk-space

freeing-disk-space

github.com/bostonaholic生产力263 次安装1 天前更新
代码仓库

关于 freeing-disk-space

用于调查磁盘占用并规划安全清理可再生成文件的技能。它优先使用所属工具的清理命令,删除前须获批准,并保留用户数据。

主要功能

  1. 01测量已知缓存位置
  2. 02调查未列出的磁盘占用
  3. 03分类清理候选项
  4. 04删除命令执行前须获批准
  5. 05保留用户数据和固定版本工具链
  6. 06清理后重新测量可用空间

适用场景

  1. 01查找磁盘空间的占用来源
  2. 02规划清理缓存和可重建文件
  3. 03保护项目数据的同时释放空间

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/bostonaholic/skills --skill freeing-disk-space

安装后在 Claude Code 中输入/freeing-disk-space确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

agents/
openai.yaml
references/
cache-locations.md
scripts/
list-pinned-versions.sh
measure-caches.sh

详细介绍

释放磁盘空间

先找出空间用在了哪里,再只删除工具可以重新生成的内容。

规则

  • 先获得批准。 显示确切命令以及它会删除什么。在用户批准该命令前,不要运行任何会删除内容的命令。
  • 由文件所属工具清理自己的文件。 优先使用 brew cleanup、docker builder prune 或 xcrun simctl delete unavailable,而不是 rm。
  • 绝不提议删除用户数据。 报告文档、照片、邮件、设备备份、源代码目录中未提交或未推送的工作、容器卷、虚拟机磁盘和数据库的大小,并留给用户处理。
  • 绝不清空废纸篓。 报告其大小,并告诉用户自行清空。
  • 保留固定的工具链版本。 删除某个工具链版本前,对每个存放用户项目的目录运行 scripts/list-pinned-versions.sh <workspace>,并保留它列出的所有版本。退出码 64 表示路径不是目录,退出码 69 表示缺少必需工具:报告相应错误。
  • 达到目标即停止。 采用用户指定的数值;若用户未指定,则使用 scripts/measure-caches.sh 打印的目标。达到目标后停止,并说明跳过了哪些已批准的条目。

找出空间用在了哪里

  • 在后台运行 scripts/measure-caches.sh;du 可能需要几分钟。
  • 它会先打印包含目标的卷信息,然后为每个已知位置打印一行。
  • 按原样记录每行的类别、重新生成方式、命令和先关闭项,填入任何 <placeholder>;报告保留项,绝不要提议删除这些项目。
  • 若退出码为 1 或 69,报告错误,并手动使用 df -h 和 du -x 测量。退出码 64 表示提供了参数;不带参数重新运行。

然后从主目录开始,用 du -x 逐层检查脚本未列出的目录树,并针对存在的每个工具链检查缓存位置。自行分类这些项目:仅凭路径无法判断其中是否存有用户数据。

将找到的内容与已用空间进行对比。如果有大量空间去向不明,请测量卷根目录、/private/var(或 /var)、其他用户的主目录,以及本地 Time Machine 快照(tmutil listlocalsnapshots /)。如果计划只涉及已用空间的一小部分,务必说明其余空间的去向。

当可用空间少于 5 GB 且工作受阻时,跳过调查:将脚本中不含 <placeholder> 的重新生成条目作为一批操作提出,并一次性请求批准;如果仍未达到目标,再进行调查。

制定计划并执行

将每个候选项分类为 可重新生成(工具会按需补充)、可重建(需要重新构建或下载),或 保留(用户数据、没有工具能重新生成的状态,或被正在运行的进程占用)。只有可重新生成和可重建的候选项可以列入计划。

按从大到小的顺序列出一张表,然后等待批准:

路径大小类别重新生成方式命令

标明需要先关闭某些内容的条目,并显示总大小与目标的对比。

每次只运行一条已批准的命令,并在每次运行后通过 df 重新测量。若命令释放的空间远小于该条目的大小,通常表示剩余空间位于虚拟机磁盘或快照中;说明具体是哪一种。报告执行前后的可用空间,以及剩余最大的保留项。

评论

支持 Markdown