使用「目录链接」解放 C 盘

deep1nlife · 2024-10-31 22:32:26 · 195 次点击

经常看到有飞友因为爆红的 C 盘发帖求助,所以单开一篇水贴聊聊,也顺便跟大佬们验证一下可行性。


一些废话


虽然使用 WizTree 之类的软件能够很方便直观地看到文件的占用情况,但每次手动查找和删除还是很麻烦。自动清理软件又受限于内置的清理规则,不能很好的适应个性化的需求。


在 C 盘空间固定且有限的情况下,有没有一种方法可以既要又要呢?


思路


用符号链接替换一个文件或文件夹,从而让软件 “以为” 在读写 C 盘,但文件实际上存放在其他分区。



符号链接只起一个重定向的作用,本身的大小基本忽略不计,从而释放了 C 盘的空间占用。



风险提示



  1. 数据无价,进行任何操作之前先备份

  2. 少数软件可能对于符号链接存在兼容性的问题,表现为找不到目标文件进而产生的报错与闪退现象。


具体命令


为文件夹创建目录链接



  • CMD:mklink /j 原始路径 现存路径

  • PowerShell:New-Item -ItemType Junction -Path 原始路径 -Target 现存路径


为单个文件创建符号链接



  • CMD:mklink 原始路径 现存路径

  • PowerShell:New-Item -ItemType SymbolicLink -Path 原始路径 -Target 现存路径



注意事项:



  • 在 C 盘创建符号链接时需要使用管理员权限

  • 文件路径中包含空格时需要使用英文引号包裹



删除链接


就像删除普通文件一样,且不会影响到我们存放在其他分区的源文件。


步骤示例


以新版 QQ 的安装路径为例



  1. 重要文件先 ** 备份 备份 备份 **!

  2. 退出 QQ 及后台相关进程

  3. 剪切文件夹 C:\Program Files\TencentD:\SoftWare\Tencent

  4. 以管理员身份运行 命令提示符(关键词 c\m\d 被屏蔽了)

  5. 执行 mklink /d"C:\Program Files\Tencent""D:\SoftWare\Tencent"


拓展和疑问



  • “C:\Users”

  • “C:\Program Files”

  • “C:\Program Files (x86)”

  • “C:\ProgramData”


通常 C 盘的占用大户无外乎这几个目录,或许可以在装完系统之后就把它们重定向到其他地方,做到系统文件和个人文件的一种完美隔离?




编辑历史:

2024/11/1 10:30

感谢飞友 @ckckchen 的指正,将主要链接方式从「符号链接」改为「目录链接」




感谢诸位飞友提供的建议

举报· 195 次点击
登录 注册 站外分享
6 条回复  
Scheme_Matrix 初学 2024-10-31 22:32:26

听起来很奇怪。在足够现代的 Windows 版本上,如果你启用了开发者模式,则不需要管理员权限来创建符号链接:



handsome 限制会员 2024-10-31 22:32:26

感谢大佬分享

Anyway 初学 2024-10-31 22:32:26
ckckchen 初学 2024-10-31 22:32:26

这种不应该junction更有优势吗?

shushu_King 初学 2024-10-31 22:32:26

感谢大佬,学习一下

Rainforest 初学 2024-10-31 22:32:26

这样是否会导致一些问题呢

返回顶部