Featured image of post Cドライブが頻繁に満杯に?簡単なDOSコマンド mklink でCドライブを救済!

Cドライブが頻繁に満杯に?簡単なDOSコマンド mklink でCドライブを救済!

背景

Cドライブの空き容量不足は、Windowsユーザーにとって古典的な悩みです。主な原因は次のとおりです:

  • WeChat/QQのチャット履歴とファイルキャッシュ(簡単に数十GBに)
  • ブラウザのキャッシュとユーザーデータ
  • pip / npm / conda / cargo などのパッケージマネージャーのグローバルキャッシュ
  • Adobe / Office / ゲームなどの大規模ソフトウェアのデフォルトインストール/データディレクトリ
  • Windowsアップデートの残骸と一時ファイル

これらのソフトウェアのほとんどは、デフォルトでCドライブにデータを書き込むように設定されており、パスを変更するオプションが提供されていません。ソフトウェアの再インストールやレジストリの編集は面倒でリスクもあります。

mklink コマンドはエレガントな解決策を提供します — 実際のデータはD/Eドライブに保存し、ソフトウェアには「まだCドライブにある」と思わせます。


mklink はWindowsに内蔵されたコマンドラインツール(Vista以降)で、リンクを作成するために使用します。本質的には 「パスのエイリアス/ポインタ」 であり、Linuxの ln -s に類似しています。

🧊 例え:デスクトップのショートカットをダブルクリックすると、実際には別の場所にあるファイルが開かれます。mklink は「実際の保存場所」と「ソフトウェアが期待するパス」を関連付けるという同じことを行います。


3種類のリンク

種類 コマンド 対象 特徴
シンボリックリンク /D ディレクトリ 別パーティション可能、最も一般的、「ディレクトリのショートカット」のようなもの
ハードリンク /H ファイル 同一パーティションのみ、複数のパスが同じデータを指す
ディレクトリジャンクション /J ディレクトリ 別パーティション可能、古いNTFS技術、互換性が高い

⭐ 日常使いでは /J(ディレクトリジャンクション)または /D(ディレクトリシンボリックリンク)を推奨。ソフトウェアのデータディレクトリを移動する場合、両者の効果はほぼ同じです。


操作手順

対象ソフトウェアを閉じる

データを移行するソフトウェアが完全に閉じている(バックグラウンドプロセスも含む)ことを確認してください。ファイルが占有されていると移動できません。

元のフォルダを移動する

1
2
# Cドライブの元のディレクトリを対象ドライブに移動/カット
move "C:\元のパス" "D:\新しいパス"

⚠️ コピーしないでください! 移動(move)またはカットを使用して、元のパスが存在しなくなったことを確認してください。

リンクを作成する

1
2
# /J でディレクトリジャンクションを作成
mklink /J "C:\元のパス" "D:\新しいパス"

または /D を使用:

1
mklink /D "C:\元のパス" "D:\新しいパス"

確認

Cドライブの元のパスを開き、Dドライブのファイルに正常にアクセスできることを確認します。

🔍 CMDで親ディレクトリに移動し、dir を実行します。リンク項目には <JUNCTION> または <SYMLINKD> マークが表示されます。


よくある使用例

WeChatデータ移行 ⭐

WeChatはCドライブの大敵で、チャット履歴とファイルキャッシュが簡単に数十GBに達します。

1
2
3
4
5
6
# WeChatを閉じる
# データディレクトリを移動
move "%USERPROFILE%\Documents\WeChat Files" "D:\Data\WeChat Files"

# リンクを作成
mklink /J "%USERPROFILE%\Documents\WeChat Files" "D:\Data\WeChat Files"

新しいバージョンのWeChatは C:\Users\ユーザー名\Documents\WeChat Files に、古いバージョンはインストールディレクトリの WeChat Files にデータを保存します。

QQデータ移行

1
2
3
4
5
# QQの個人フォルダは通常
# C:\Users\ユーザー名\Documents\Tencent Files

move "C:\Users\あなたのユーザー名\Documents\Tencent Files" "D:\Data\Tencent Files"
mklink /J "C:\Users\あなたのユーザー名\Documents\Tencent Files" "D:\Data\Tencent Files"

Chrome / Edge ブラウザキャッシュ

1
2
3
4
5
6
7
# Chrome ユーザーデータ
move "%LOCALAPPDATA%\Google\Chrome\User Data" "D:\BrowserData\Chrome"
mklink /J "%LOCALAPPDATA%\Google\Chrome\User Data" "D:\BrowserData\Chrome"

# Edge ユーザーデータ
move "%LOCALAPPDATA%\Microsoft\Edge\User Data" "D:\BrowserData\Edge"
mklink /J "%LOCALAPPDATA%\Microsoft\Edge\User Data" "D:\BrowserData\Edge"

開発ツールのキャッシュ

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# pip キャッシュ
move "%LOCALAPPDATA%\pip\cache" "D:\DevCache\pip"
mklink /J "%LOCALAPPDATA%\pip\cache" "D:\DevCache\pip"

# npm キャッシュ
move "%LOCALAPPDATA%\npm-cache" "D:\DevCache\npm"
mklink /J "%LOCALAPPDATA%\npm-cache" "D:\DevCache\npm"

# Maven ローカルリポジトリ
move "%USERPROFILE%\.m2\repository" "D:\DevCache\maven"
mklink /J "%USERPROFILE%\.m2\repository" "D:\DevCache\maven"

より良い方法は、パッケージマネージャーのキャッシュパスを直接設定することです(例:npm config set cache)。環境変数を使用する方法がより安定しており、mklinkは最終手段として使用します。

Windowsストアアプリ / 大型ゲーム

一部のUWPアプリやXbox Game Passゲームはインストールパスを変更できませんが、mklinkを使用して移行できます。

1
2
3
# Forza Horizonなどのゲームの場合
# 通常は C:\Program Files\WindowsApps または C:\XboxGames にあります
# 先にフォルダのアクセス許可(TrustedInstaller)を取得する必要があります

⚠️ WindowsAppsディレクトリの操作は複雑で、権限の取得が必要です。一般ユーザーは注意して行ってください。

OneDrive / iCloud 同期ディレクトリ

1
2
move "C:\Users\あなたのユーザー名\OneDrive" "D:\OneDrive"
mklink /J "C:\Users\あなたのユーザー名\OneDrive" "D:\OneDrive"

注意事項と落とし穴

問題 説明
先に移動してからリンク mklink は対象パスが存在していない必要があり、存在するとエラー ファイルが既に存在します が発生
移動前にバックアップ 操作は可逆的ですが、重要なデータは事前にバックアップを推奨
システムディレクトリに触らない C:\Windows、C:\Program Files などのシステムディレクトリは操作しない
リンク削除 ≠ データ削除 Cドライブの「ショートカット」を削除してもリンクのみ削除、Dドライブのデータは残る
リンクの正しい削除方法 rmdir "C:\リンクパス"(del ではない)
管理者としてCMDを実行 一部のディレクトリは管理者権限が必要
NTFSファイルシステム NTFSのみサポート、FAT32/exFATは非対応
復元操作 リンクを削除 → DドライブのデータをCドライブの元のパスに戻す

リンクの削除/復元

1
2
3
4
5
# リンクを削除(Dドライブの元のデータは削除されない)
rmdir "C:\元のパス"

# 復元する場合:データを戻す
move "D:\新しいパス" "C:\元のパス"

クイック診断:Cドライブの容量を消費しているのは?

mklinkを実行する前に、ツールを使用してCドライブを分析し、本当の原因を見つけることをお勧めします:

ツール 特徴
WizTree 高速スキャン、直感的なツリーマップ、無料
SpaceSniffer 視覚的なブロックチャート、直感的
TreeSize Free 定番ツール、フォルダサイズ順にソート
Windows ディスククリーンアップ cleanmgr、一時ファイルとアップデートの残骸をクリーン

🔥 WizTree をお勧めします — MFTを直接解析するため、数秒でハードドライブ全体をスキャンできます。


まとめ

mklink の中心的な考え方は次のとおりです:

1
2
3
ソフトウェアはデータがまだ C:\どこかのパス にあると思っている
       ↓ (mklink が作成したリンク)
実際のデータは D:\どこかのパス に保存されている

操作の合言葉:ソフトウェアを閉じる → フォルダを移動 → mklinkでリンク作成 → 動作確認

これは「レジストリを編集する」「別のドライブに再インストールする」よりも安全で、可逆的で、効率的です。このコマンドをマスターすれば、Cドライブが理由もなく赤くなることはもうありません。🎉


関連資料

  • ディスククリーンナップツール:WizTree / SpaceSniffer
  • パッケージマネージャーのキャッシュパス設定:npm、pip、cargo公式ドキュメント
comments powered by Disqus
Hugo で構築されています。
テーマ Stack は Jimmy によって設計されています。