问题背景
C 盘空间告急是 Windows 用户的经典痛点,罪魁祸首通常是:
- 微信/QQ 的聊天记录和文件缓存(动辄几十 GB)
- 浏览器缓存和用户数据
- pip / npm / conda / cargo 等包管理器的全局缓存
- Adobe / Office / 游戏等大型软件的默认安装/数据目录
- Windows 更新残留和临时文件
这些软件大多 默认把数据写死到 C 盘,且不提供修改路径的选项。重装软件、改注册表等方式既麻烦又有风险。
mklink 命令可以优雅地解决这个问题——把数据实际存储在 D/E 盘,但软件"以为"它还在 C 盘。
mklink 是什么
mklink 是 Windows 内置的命令行工具(Vista 起),用于创建 链接(Link)。它本质上是一个 “路径的别名/指针”,类似于 Linux 的 ln -s。
🧊 类比:就像桌面快捷方式——你双击桌面的图标,实际打开的是另一个位置的文件。mklink 做的就是把"真实存储位置"和"软件期望的路径"关联起来。
三种链接类型
| 类型 | 命令 | 适用对象 | 特点 |
|---|---|---|---|
| 符号链接 | /D |
目录 | 可跨分区,最常用,类似"目录的快捷方式" |
| 硬链接 | /H |
文件 | 同一分区内,多个路径指向同一份数据 |
| 目录 Junction | /J |
目录 | 跨分区,老的 NTFS 技术,兼容性更好 |
⭐ 日常使用首选
/J(目录 Junction)或/D(目录符号链接)。对于移动软件数据目录的场景,两者效果几乎一样。
操作步骤
关闭目标软件
确保要迁移数据的软件 完全关闭(包括后台进程),否则文件被占用无法移动。
移动原始文件夹
|
|
⚠️ 不要用复制! 用移动(move)或剪切,确保原路径不再存在。
创建链接
|
|
或者用 /D:
|
|
验证
打开 C 盘原路径,确认能正常访问 D 盘的文件。
🔍 在 CMD 中进入父目录,执行
dir,链接项会显示<JUNCTION>或<SYMLINKD>标记。
常见应用场景
微信/WeChat 数据迁移 ⭐
微信是 C 盘杀手,聊天记录和文件缓存轻松几十 GB。
|
|
WeChat 新版路径可能在
C:\Users\用户名\Documents\WeChat Files,旧版在安装目录下的WeChat Files。
QQ 数据迁移
|
|
Chrome / Edge 浏览器缓存
|
|
开发工具缓存
|
|
更推荐的做法是直接配置包管理器的缓存路径(如
npm config set cache),环境变量方案更稳定。mklink 作为兜底方案。
Windows 应用商店应用 / 大型游戏
部分 UWP 应用和 Xbox Game Pass 游戏无法修改安装路径,可以通过 mklink 迁移。
|
|
⚠️ 操作 WindowsApps 目录较复杂,涉及权限获取,普通用户谨慎操作。
OneDrive / iCloud 云盘同步目录
|
|
注意事项 & 避坑指南
| 问题 | 说明 |
|---|---|
| 必须先移动再链接 | mklink 要求目标路径 不存在,否则报错 文件已存在 |
| 移动前备份 | 虽然操作可逆,但建议重要数据先备份 |
| 不要对系统关键目录操作 | C:\Windows、C:\Program Files 等系统目录勿动 |
| 删除链接 ≠ 删除数据 | 在 C 盘删除那个"快捷方式"只删除链接,D 盘数据还在 |
| 删除链接的正确姿势 | rmdir "C:\链接路径"(不是 del) |
| 以管理员身份运行 CMD | 部分目录需要管理员权限才能创建链接 |
| NTFS 文件系统 | 仅 NTFS 支持,FAT32/exFAT 不支持 |
| 还原操作 | 删除链接 → 把 D 盘数据移回 C 盘原路径即可 |
删除/还原一个链接
|
|
快速诊断 C 盘:谁在占用空间?
在执行 mklink 之前,建议先用工具分析 C 盘,找到真正的"元凶":
| 工具 | 特点 |
|---|---|
| WizTree | 极速扫描,直观的树图,免费 |
| SpaceSniffer | 可视化方块图,直观 |
| TreeSize Free | 经典工具,按文件夹大小排序 |
| Windows 自带磁盘清理 | cleanmgr,清理临时文件和更新残留 |
🔥 推荐 WizTree——直接用 MFT 解析,几秒扫描完整个硬盘。
总结
mklink 的核心思想就是:
|
|
操作口诀:关闭软件 → 移动文件夹 → mklink 链接 → 验证能用
它比「改注册表」「重装到其他盘」更安全、可逆、高效。掌握这个命令,C 盘再也不会莫名其妙爆红了。🎉
相关阅读
- 磁盘清理工具:WizTree / SpaceSniffer
- 包管理器缓存路径配置:npm / pip / cargo 官方文档