Rust 与 Cargo 清理指南:删除旧工具链和构建缓存
Rust 项目编译一段时间后,磁盘空间往往会被以下三类文件占满:
- 项目中的
target/构建产物; - Cargo 保存在
$CARGO_HOME(通常是~/.cargo/)中的依赖缓存; - rustup 安装的旧工具链、交叉编译目标和组件。
它们的用途和清理方式并不相同。本文将分别介绍如何安全清理这些文件,并尽量避免不必要的重新下载和完整编译。
建议先检查占用,再使用工具提供的
--dry-run预览结果。不要直接手动删除整个~/.cargo/或~/.rustup/目录。
一、先找出空间占用来源
在 Linux 和 macOS 中,可以先查看 Rust 相关目录的大小:
du -sh target 2>/dev/null
du -sh "${CARGO_HOME:-$HOME/.cargo}" 2>/dev/null
du -sh "${RUSTUP_HOME:-$HOME/.rustup}" 2>/dev/null
常见目录的作用如下:
| 位置 | 内容 | 清理后的影响 |
|---|---|---|
项目/target/ |
当前项目的编译产物 | 下次构建需要重新编译 |
$CARGO_HOME/registry/ |
crates.io 索引、.crate 包和解压后的源码 |
后续可能重新下载或解压依赖 |
$CARGO_HOME/git/ |
Git 依赖的仓库与检出内容 | 后续需要重新获取 Git 依赖 |
$CARGO_HOME/bin/ |
cargo install 安装的程序 |
删除后相应命令将无法使用 |
$RUSTUP_HOME/toolchains/ |
Rust 工具链 | 删除后无法再使用对应版本 |
二、清理项目的 target/ 构建产物
1. 使用 Cargo 原生命令
不带参数的 cargo clean 会删除整个目标目录: