Levo 指南 · 开发者:Apple
开发者的 Mac 磁盘清理指南 (2026)

开发者的 Mac 总是被同样十几个地方占满:Xcode 的构建数据和模拟器、node_modules、包缓存、Docker 的磁盘映像、各语言的工具链以及 AI 模型。几乎所有这些都能按需重新生成,所以关键是弄清每个文件夹是什么,并使用工具自带的清理命令,而不是 rm。
| 生态 | 藏在哪里 | 如何清理 | 指南 |
|---|---|---|---|
| Xcode 构建数据 | ~/Library/Developer/Xcode/DerivedData | Settings › Locations,或直接删除文件夹 | DerivedData |
| 模拟器和运行时 | ~/Library/Developer/CoreSimulator | xcrun simctl delete unavailable | 模拟器 |
| 设备支持文件 | ~/Library/Developer/Xcode/iOS DeviceSupport | 删除旧 iOS 版本的文件夹 | DeviceSupport |
| SwiftPM 和 CocoaPods | ~/Library/Caches/org.swift.swiftpm、~/Library/Caches/CocoaPods | swift package purge-cache、pod cache clean --all | SwiftPM 和 CocoaPods |
| node_modules | 每个 JavaScript 项目文件夹 | 删除文件夹,然后运行 npm install | node_modules |
| npm、pnpm、Yarn、Bun | ~/.npm、pnpm 存储、~/.bun/install/cache | npm cache clean --force、pnpm store prune | JavaScript 缓存 |
| Docker | Docker 数据文件夹中的 Docker.raw | docker system prune | Docker |
| Homebrew | ~/Library/Caches/Homebrew | brew cleanup | Homebrew |
| Python | ~/Library/Caches/pip、虚拟环境、conda | pip cache purge、uv cache clean | pip、uv 和 conda、虚拟环境 |
| Rust | target 文件夹、~/.cargo | cargo clean | Rust |
| Go | ~/Library/Caches/go-build, ~/go/pkg/mod | go clean -cache | Go |
| Gradle 和 Android | ~/.gradle/caches、~/Library/Android/sdk | ./gradlew clean、AVD Manager | Gradle、Android 模拟器 |
| 编辑器 | JetBrains、VS Code 和 Cursor 的缓存 | 各个 App 自己的文件夹 | JetBrains、VS Code 和 Cursor |
| 测试用浏览器 | ~/Library/Caches/ms-playwright | npx playwright uninstall | Playwright 和 Puppeteer |
| 游戏引擎 | Unity 的 Library、Unreal 的 DerivedDataCache | 删除文件夹,重新打开项目 | Unity 和 Unreal |
| AI 模型和智能体 | ~/.ollama、~/.cache/huggingface、~/.claude | 各工具自己的命令 | AI 杂物 |
自己动手清理
先找出空间去了哪里。磁盘地图是最快的办法,不过几条 du 命令就能回答大部分问题:
du -sh ~/Library/Developer ~/Library/Caches ~/.cache ~/.npm ~/.gradle ~/.cargo ~/.ollama ~/.claude 2>/dev/null
du -sh ~/Library/Containers/com.docker.docker 2>/dev/null
然后按这个顺序处理,先处理最大且最安全的。
- 退出 Xcode,清理构建数据,再清理模拟器和旧的设备支持文件。在用了多年 Xcode 的 Mac 上,这通常有 50 到 150 GB。Xcode 为什么会变得这么大逐个解释了每个文件夹。
- 清理 Docker。镜像和构建缓存可以放心清理;数据卷里可能有你在意的数据库。
- 删除那些几个月没打开过的项目里的
node_modules和target文件夹。以后需要时用包管理器恢复即可。 - 运行各包管理器的清理命令:
brew cleanup、npm cache clean --force、pip cache purge、go clean -cache。每个缓存都会在下次安装时重建,这会花费时间和流量。 - 检查 AI 模型和智能体的历史记录。模型是这里唯一可能已经无法在网上找到的东西,所以要手动检查。
保证安全的原则:缓存和构建产物都是由别的东西生成的。归档、Docker 数据卷里的数据库、尚未推送的 git 工作、.env 文件以及你自己的模型则不是。
一套行之有效的习惯
对多数开发者来说,养成一个小习惯比一次大清理更有效。每月一次,用上面的命令统计各文件夹的大小,看看哪些变大了。Xcode 构建数据、Docker 的构建缓存和已放弃分支里的 node_modules 通常是增长最快的;其余的几乎不怎么变。
有两件事值得一次性做好。用环境变量(OLLAMA_MODELS、HF_HOME)把大型模型缓存指向外置硬盘,并缩短编程智能体保留会话的时间。此后增长就会彻底放缓。
另外还有一份简短的清单,无论清理工具怎么说,这些都别动:你已发布的 Xcode 归档、里面有数据库的 Docker 数据卷、.env 和凭据文件、SSH 密钥,以及有未推送工作的 git 仓库。它们都不是缓存,也都无法从源码重建。如果你不确定某个文件夹,先打开看看日期,并在删除之前问问你的智能体它是什么。
Levo 怎么做
Levo 会为你的磁盘维护一个实时索引,并按类型对找到的内容分组:Xcode 构建数据、模拟器、包缓存、Docker 镜像、智能体 worktree 等等,每项都有大小和原因。内置规则认得上面这些文件夹。你自己的智能体(比如 Claude Code 或 Codex)会读取索引并判断哪些已经过时,但只有 Levo 会执行删除。
Select › Smartly 会勾选在你的清理级别下安全的项目。模型、备份、虚拟机以及任何正在打开的东西都不会勾选,由你来决定。Levo 在删除前会再检查每个项目一遍,并且不会碰 Xcode 或构建正在使用的任何东西。详情见面向 Xcode 开发者的 Levo、面向 Web 开发者和面向 Android 开发者。
常见问题
开发者的 Mac 上什么最占空间?
通常首先是 Xcode 数据:DerivedData、模拟器及其运行时、设备支持文件,然后是 Docker 的磁盘映像、node_modules 文件夹和 AI 模型。统计一下你的个人文件夹和 Library 文件夹的大小,就知道哪种适用于你。
删除开发者缓存安全吗?
缓存和构建产物可以放心删,因为工具会根据你的源码重新生成。下次构建或安装会慢一些。不要删除归档、Docker 数据卷、尚未推送的 git 工作,或无法再次下载的模型。
该用 rm 还是工具自带的命令?
有工具命令时就用工具命令,比如模拟器用 simctl,还有 docker prune、brew cleanup 和 swift package purge-cache。它知道什么正在使用。DerivedData 和 node_modules 直接删除就可以。
多久清理一次开发者的 Mac?
可用空间变少时,或者一个大项目结束之后。构建数据和缓存会重新长回来,所以每月看一眼比每年大清理一次更好。