開発者向けディスククリーンアップ

Cargo キャッシュと target フォルダーの違い:削除してよいのはどれ?

Rust プロジェクトの target と Cargo の依存関係キャッシュの違い、安全に削除できる範囲、.cargo 内で消してはいけないデータを解説します

公開日:2026年8月12日著者 Harry
Rust の依存パッケージとプロジェクトのビルド成果物を分けて確認するイメージ

空き容量を増やしたい場合は、まず使っていないプロジェクトの target フォルダーから整理するのがおすすめです。ここにあるのは Rust workspace ごとのビルド成果物で、必要になれば再コンパイルできます。Cargo の共有キャッシュを消すのは、実際に大きな容量を占めている、データが壊れている、しばらくオフライン作業をしない、といった場合に限るとよいでしょう。削除後は依存パッケージの再ダウンロードや展開が必要です。

.cargo フォルダー全体を削除してはいけません。Cargo の設定、registry の認証情報、cargo install で導入したコマンドも保存されており、これらはキャッシュではありません。

記載しているパスとコマンドは、2026 年 8 月 12 日に macOS 15.7.7、Cargo 1.84.0、rustc 1.84.0 で確認しました。Cargo Home やビルド先は変更できるため、削除前に必ず実際のパスを確認してください。

結論:まず target、共有キャッシュはその後

Cargo が保存する再生成可能なデータは、大きく次の 2 種類に分かれます。

  • workspace の target フォルダー:そのプロジェクトのコンパイル結果
  • Cargo Home(通常は ~/.cargo):共有ダウンロード、展開済みの依存ソース、Git 依存関係、設定、認証情報、インストール済みツール

違うのは、元に戻すためのコストです。target を削除すると再コンパイルが必要になります。依存関係のキャッシュまで削除すると、再コンパイルに加えてネットワーク接続も必要になる場合があります。そのため、通常は古いプロジェクトの target を先に確認する方が効率的です。

パス保存されるもの削除してよいか削除後の動作
project/targetDebug・Release ビルド、インクリメンタルデータ、ドキュメント、ターゲット別の成果物ビルド停止後なら削除可能プロジェクトを再コンパイルする
~/.cargo/registry/cacheダウンロード済み crate の圧縮ファイルオンラインなら通常は削除可能不足分を再ダウンロードする
~/.cargo/registry/srcregistry から展開したパッケージのソースオンラインなら通常は削除可能再展開または再ダウンロードする
~/.cargo/git/dbgit/checkoutsGit 依存関係の repository と checkoutオンラインなら通常は削除可能再取得して checkout する
~/.cargo/bincargo install で導入したツールキャッシュとして削除しないインストール済みコマンドが消える
config.tomlcredentials.tomlCargo の設定と registry の認証情報削除しないビルド、registry、プロキシ、認証が使えなくなる可能性がある
Cargo.tomlCargo.locksrcプロジェクト定義、依存バージョン、ソースコード削除しないプロジェクト自体が壊れる

Windows の Cargo Home は通常 %USERPROFILE%\.cargo です。CARGO_HOME を設定している場合は、OS にかかわらず、その環境変数が指す場所を使ってください。

target フォルダーが大きくなる理由

Cargo は、デフォルトでは workspace の target にビルド出力を保存します。Debug と Release では別のサブフォルダーが使われ、別の target triple 向けにコンパイルすれば、その分の成果物も増えます。インクリメンタルコンパイル用の中間データも、次回以降のビルドを速くするために残ります。

デスクトップアプリ、WebAssembly、複数アーキテクチャ、さまざまな feature の組み合わせを同じ workspace でビルドしていると、ソースコードのサイズを大きく上回ることがあります。Cargo の公式ドキュメントでも、これらは再生成できるビルドデータとして扱われています。ただし、削除すれば次回のビルドはキャッシュなしで始まります。

この記事で確認した MangoDisk の repository では、target が 27 GB を使用していました。同じ Mac で、Cargo registry の圧縮キャッシュは 189 MB、展開済みソースは 1.9 GB、Cargo Git database は 17 MB でした。これはあくまで手元の環境での測定値で、一般的な削減量を示すものではありません。先にサイズを調べるべき理由がよく分かる例です。

削除前に実際のパスとサイズを確認する

macOS または Linux の Rust workspace では、次の読み取り専用コマンドで一般的な保存先を確認できます。

cargo_home="${CARGO_HOME:-$HOME/.cargo}"

du -sh target 2>/dev/null
du -sh "$cargo_home/registry/cache" "$cargo_home/registry/src" \
  "$cargo_home/git/db" "$cargo_home/git/checkouts" 2>/dev/null

target の保存先は設定で変更できます。次のコマンドが出力する workspace metadata には、実際の target_directory が含まれます。

cargo metadata --no-deps --format-version 1

PowerShell では、現在のプロジェクトと Cargo Home を別々に確認できます。

$CargoHome = if ($env:CARGO_HOME) { $env:CARGO_HOME } else { Join-Path $HOME ".cargo" }

Get-ChildItem .\target -Recurse -File -Force -ErrorAction SilentlyContinue |
  Measure-Object Length -Sum
Get-ChildItem "$CargoHome\registry\cache" -Recurse -File -Force -ErrorAction SilentlyContinue |
  Measure-Object Length -Sum

PowerShell の結果はバイト単位です。容量だけでなく、削除対象のパスが本当に正しいかも確認してください。

target フォルダーを安全にクリーンアップする

最初に cargo build、テスト、コンパイル中の rust-analyzer、workspace から起動しているアプリを停止します。続いて、Cargo が削除する予定のファイルをプレビューします。

cargo clean --dry-run -v

対象に問題がなければ、現在の workspace の target 全体を削除します。

cargo clean

必要なビルドデータを残したい場合は、対象を絞ることもできます。

# Release profile の成果物だけを削除
cargo clean --release

# 生成したドキュメントだけを削除
cargo clean --doc

# workspace 内の 1 つの package だけを削除
cargo clean -p your-package-name

cargo clean は Cargo に設定された target の保存先を使います。独自の target-dir を指定している workspace では、手作業で ./target と決めつけるより安全です。

削除後にフォルダーが再び作られるのは正常です。次回のビルドで必要なデータが生成されます。インクリメンタルデータも消えているため、最初のフルビルドは通常より長くかかります。

Cargo の共有キャッシュを消すタイミング

共有キャッシュの整理を検討してよいのは、次のような場合です。

  • 測定した結果、無視できない容量を使っている
  • ダウンロードした archive や Git 依存関係が壊れている
  • 古い toolchain やプロジェクトの依存関係を当面使わない
  • 今すぐ容量が必要で、後から安定したネットワークを利用できる

移動中やオフライン作業の直前、社内 registry に接続できない可能性があるときは避けてください。独自 registry、vendored dependencies、標準以外の CARGO_HOME をチームで使っていないかも確認しましょう。

Cargo Home の公式ドキュメントでは、registry と Git のデータは、再展開、checkout、ダウンロードによって復元できるキャッシュとして説明されています。手動で削除する場合は Cargo 関連のプロセスを終了し、正しい Cargo Home を設定して、最後にもう一度サイズを確認します。

cargo_home="${CARGO_HOME:-$HOME/.cargo}"
du -sh "$cargo_home/registry/cache" "$cargo_home/registry/src" \
  "$cargo_home/git/db" "$cargo_home/git/checkouts" 2>/dev/null

そのうえで、自分で選んだキャッシュのサブフォルダーだけを削除します。

rm -rf "$cargo_home/registry/cache" "$cargo_home/registry/src" \
  "$cargo_home/git/db" "$cargo_home/git/checkouts"

このコマンドはゴミ箱を経由しません。rm -rf ~/.cargo のように対象を広げないでください。削除後のオンラインビルドでは、依存パッケージの再ダウンロードと展開が発生する場合があります。

Windows では、エクスプローラーで %CARGO_HOME% または %USERPROFILE%\.cargo を開き、該当するキャッシュのサブフォルダーだけを確認して削除できます。画面で選ぶ方が、bin、設定、認証情報を誤って含めるリスクを減らせます。

Cargo キャッシュとして削除してはいけないもの

次の項目はクリーンアップ対象に含めないでください。

  • .cargo/bincargo-auditcargo-edit など、インストール済みのコマンドが入っている
  • .cargo/credentials.toml:registry のログイントークンが保存されている場合がある
  • .cargo/config.toml:registry、alias、ネットワーク設定、ビルドターゲットの動作を定義している場合がある
  • プロジェクトの Cargo.tomlCargo.lockbuild.rssrc
  • 管理者が復旧手順を用意していない vendored dependencies や社内向けオフラインミラー

キャッシュかどうか判断できないフォルダーは、確認するだけにとどめましょう。.cargo の中にあるという理由だけで、安全に削除できるとは限りません。

MangoDisk で Rust のビルド成果物を確認する

MangoDisk のディープクリーンアップは、Rust プロジェクトの target フォルダーと、OS ごとの Cargo キャッシュ保存先を検出します。.cargo 全体を対象にすることはなく、プロジェクトのビルド成果物もデフォルトでは選択されません。

スキャンはローカルで行われます。削除前にパスと実際のサイズを確認できるため、複数の workspace に target が残っている場合にも便利です。確認操作とクリーンアップ履歴については、MangoDisk の安全性ガイドをご覧ください。

よくある質問

Rust プロジェクトの target フォルダーは削除しても安全ですか?

Cargo に設定されたビルド出力先であり、ビルドが動いていなければ削除できます。プロジェクトのソースコードではなく、再生成できる成果物です。次回はフルビルドになるため、通常より時間がかかります。

cargo clean で Cargo のダウンロードキャッシュも消えますか?

消えません。cargo clean が削除するのは target 内のビルド成果物です。Cargo Home の registry や Git 依存関係キャッシュは対象外です。

容量節約や依存関係の修復のために Cargo.lock を消してもよいですか?

削除しないでください。Cargo.lock は小さなファイルで、解決済みの依存バージョンを記録しています。削除はディスク整理にならず、選ばれる依存バージョンが変わる可能性があります。

Cargo キャッシュや target がまた作られるのはなぜですか?

正常な動作です。Cargo はビルド時に成果物を再生成し、不足している依存データを復元します。クリーンアップは古い再生成可能データを消すだけで、キャッシュ機能を無効にするものではありません。

参考資料と関連記事

Rust のビルド成果物と Cargo キャッシュを画面で比べてから整理したい場合は、MangoDisk をダウンロードしてローカルスキャンを確認できます。

Cargo キャッシュRust target フォルダーcargo clean開発者向けディスククリーンアップ
記事一覧