Featured image of post C 碟經常爆滿?教你簡單的 DOS 命令 mklink 拯救 C 碟!

C 碟經常爆滿?教你簡單的 DOS 命令 mklink 拯救 C 碟!

問題背景

C 碟空間告急是 Windows 使用者的經典痛點,罪魁禍首通常是:

  • 微信/QQ 的聊天記錄和檔案快取(動輒幾十 GB)
  • 瀏覽器快取和使用者資料
  • pip / npm / conda / cargo 等套件管理員的全域快取
  • Adobe / Office / 遊戲等大型軟體的預設安裝/資料目錄
  • Windows 更新殘留和暫存檔案

這些軟體大多 預設把資料寫死到 C 碟,且不提供修改路徑的選項。重裝軟體、改登錄檔等方式既麻煩又有風險。

mklink 指令可以優雅地解決這個問題——把資料實際儲存在 D/E 碟,但軟體「以為」它還在 C 碟。


mklink 是 Windows 內建的命令列工具(Vista 起),用於建立 連結(Link)。它本質上是一個 「路徑的別名/指標」,類似於 Linux 的 ln -s。

🧊 類比:就像桌面捷徑——你雙擊桌面的圖示,實際開啟的是另一個位置的檔案。mklink 做的就是將「真實儲存位置」和「軟體期望的路徑」關聯起來。


三種連結類型

類型 指令 適用對象 特點
符號連結 /D 目錄 可跨分割區,最常用,類似「目錄的捷徑」
硬連結 /H 檔案 同一分割區內,多個路徑指向同一份資料
目錄 Junction /J 目錄 跨分割區,舊的 NTFS 技術,相容性更好

⭐ 日常使用首選 /J(目錄 Junction)或 /D(目錄符號連結)。對於移動軟體資料目錄的場景,兩者效果幾乎一樣。


操作步驟

關閉目標軟體

確保要遷移資料的軟體 完全關閉(包括背景程式),否則檔案被占用無法移動。

移動原始資料夾

1
2
# 把 C 碟的原始目錄 移動/剪下 到目標碟
move "C:\原始路徑" "D:\新路徑"

⚠️ 不要用複製! 用移動(move)或剪下,確保原始路徑不再存在。

建立連結

1
2
# 用 /J 建立目錄 Junction
mklink /J "C:\原始路徑" "D:\新路徑"

或者用 /D:

1
mklink /D "C:\原始路徑" "D:\新路徑"

驗證

開啟 C 碟原始路徑,確認能正常存取 D 碟的檔案。

🔍 在 CMD 中進入父目錄,執行 dir,連結項會顯示 <JUNCTION> 或 <SYMLINKD> 標記。


常見應用場景

微信/WeChat 資料遷移 ⭐

微信是 C 碟殺手,聊天記錄和檔案快取輕鬆幾十 GB。

1
2
3
4
5
6
# 關閉微信
# 移動資料目錄
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 設計