mac终端编译产生的中间文件主要来自xcode、cmake等工具,长期堆积可达20gb+,需分四步清理:一清xcode衍生数据、归档与模拟器缓存;二清swiftpm、cargo、pip等工具缓存;三扫/tmp与/var/folders下的.o/.d/.tmp文件;四用du命令定位最大残留目录。
mac 上终端编译产生的中间临时文件,主要来自 xcode、cmake、make、swiftpm、rust(cargo)、go、python 构建工具等。它们通常不自动清理,长期堆积在深层路径中,单个项目可能占几 gb,多个项目叠加可达 20gb+,且容易拖慢后续编译或导致缓存冲突。
一、重点清空 Xcode 衍生数据和模拟器缓存
Xcode 是 macOS 开发中临时文件的最大来源,尤其是 DerivedData(编译中间产物)、Archives(归档包)、CoreSimulator(模拟器运行时数据):
-
清空全部衍生数据:
rm -rf ~/Library/Developer/Xcode/DerivedData
-
删除所有历史归档(IPA 源文件):
rm -rf ~/Library/Developer/Xcode/Archives
-
清理模拟器缓存(含快照、日志、临时磁盘镜像):
rm -rf ~/Library/Developer/CoreSimulator
✅ 建议:执行前先在 Xcode「Settings → Locations」里确认 DerivedData 路径是否为默认位置;若自定义过,需对应修改路径。
二、清理通用构建工具缓存目录
不同工具存放中间文件的位置固定,可按需清除:
-
SwiftPM 缓存(Swift 包管理器):
rm -rf ~/Library/Caches/org.swift.swiftpm
-
Rust cargo 编译缓存(target 目录外的全局缓存):
cargo clean && cargo cache clean --yes
需先安装
cargo-cache:cargo install cargo-cache -
Python(pip + venv + build):
find ~/.cache/pip -name "*.whl" -mtime +30 -delete 2>/dev/null rm -rf ~/.cache/pypoetry && rm -rf ~/.cache/pip-tools
-
Node.js 生态(npm/yarn/pnpm):
npm cache clean --force yarn cache clean pnpm store prune
三、扫除系统级临时编译残留
部分 CLI 工具(如 make、gcc、clang 手动调用)会把 .o、.d、*.tmp 写入 /private/tmp 或 /var/folders/xx/yy/T/:
-
清理用户级临时编译产物(跳过正在使用的文件):
sudo find /private/tmp -type f \( -name "*.o" -o -name "*.d" -o -name "*.tmp" \) -mtime +7 -delete
-
清理沙盒应用临时区中的编译缓存(如 VS Code 插件、CLI 工具生成的 C 缓存):
sudo find /private/var/folders -type f -name "*.o" -mtime +14 -delete 2>/dev/null
⚠️ 注意:
/private/var/folders下的路径由系统随机生成,不可手动进入;必须用find定向扫描,避免误删活跃进程所需临时文件。
四、快速定位最大编译残留目录
不确定哪些地方最占空间?用这两条命令快速筛查:
du -sh ~/Library/Developer/* | sort -hr | head -5 du -sh ~/.cache/* ~/Library/Caches/* 2>/dev/null | sort -hr | head -5
看到明显异常大的目录(例如 DerivedData/MyApp-blahblah 占 12GB),再针对性删除更稳妥。
不复杂但容易忽略










