该技能面向 macOS 磁盘空间告急场景,例如启动盘快满、安装大型软件前需要腾出空间。流程为诊断、回收安全目标、验证三步,仅清理已知安全项,不触碰个人数据。
诊断常用命令:df -h /System/Volumes/Data 查看真实占用(df / 显示的是封装的系统快照);du -sh ~/Library/* | sort -rh | head 与 du -sh ~/* ~/.[a-z]* 2>/dev/null | sort -rh | head 定位大目录;tmutil listlocalsnapshots / 查看快照,MSUPrepareUpdate 代表已暂存的 macOS 更新。
资料中列出的常见占用目标及处理:~/Library/Application Support/Claude/vm_bundles(约 10G,VM 未运行时删除,可用 pgrep -fl claudevm 检查,会按需重建);~/Library/pnpm store(7G+,pnpm store prune);~/Library/Caches 下的 com.spotify.client、BraveSoftware、Google、com.brave.Browser、pip、go-build、node-gyp(约 4G,直接删除);~/.cache/uv(2G+,uv cache prune,其余被活动 venv 引用需保留);/opt/homebrew(20G+,brew cleanup --prune=all && brew autoremove);MSUPrepareUpdate 快照(数 GB,完成待处理的 macOS 更新并重启,softwareupdate -l 查看)。
不要删除:~/Library/Caches/ms-playwright*(会导致 E2E 失效,除非重新 playwright install)、~/.cache/codex-runtimes(Codex 插件运行时)、~/Pictures、~/Library/Group Containers、Mail 等个人数据,以及 prune 后残留的 ~/.cache/uv(被硬链接进 venv)。
注意事项:rip 不释放空间,它把文件移到同卷 /tmp/graveyard-$USER,处理大目标后需运行 yes | rip --decompose 再查 df;当软件包已过期时 brew cleanup 不会释放空间,只删除比已安装最新版更旧的版本,想要实际节省需先升级;uv cache prune 保留使用中的条目(正确做法),clean 会全部清空但毫无意义,因硬链接文件不释放空间。
自动化:reference/prune.sh 为默认干跑报告,reference/prune.sh --apply 实际清理。reference/clean-large-and-olds.sh 用于发现新候选,按存储租金(score = size_GB × idle_days)排序,条件是创建超过 180 天且 atime 超过 90 天,热门项用 Spotlight kMDItemLastUsedDate 交叉核对;默认扫描 $HOME 取前 20,可用 --root DIR --min-size 50 --top 30 调整。该脚本仅生成报告,人工复核后再执行 rip <paths> 与 yes | rip --decompose。