经常看到有飞友因为爆红的 C 盘发帖求助,所以单开一篇水贴聊聊,也顺便跟大佬们验证一下可行性。
一些废话
虽然使用 WizTree 之类的软件能够很方便直观地看到文件的占用情况,但每次手动查找和删除还是很麻烦。自动清理软件又受限于内置的清理规则,不能很好的适应个性化的需求。
在 C 盘空间固定且有限的情况下,有没有一种方法可以既要又要呢?
思路
用符号链接替换一个文件或文件夹,从而让软件 “以为” 在读写 C 盘,但文件实际上存放在其他分区。
符号链接只起一个重定向的作用,本身的大小基本忽略不计,从而释放了 C 盘的空间占用。
风险提示
- 数据无价,进行任何操作之前先备份
- 少数软件可能对于符号链接存在兼容性的问题,表现为找不到目标文件进而产生的报错与闪退现象。
具体命令
为文件夹创建目录链接
- CMD:
mklink /j 原始路径 现存路径
- PowerShell:
New-Item -ItemType Junction -Path 原始路径 -Target 现存路径
为单个文件创建符号链接
- CMD:
mklink 原始路径 现存路径
- PowerShell:
New-Item -ItemType SymbolicLink -Path 原始路径 -Target 现存路径
注意事项:
- 在 C 盘创建符号链接时需要使用管理员权限
- 文件路径中包含空格时需要使用英文引号包裹
删除链接
就像删除普通文件一样,且不会影响到我们存放在其他分区的源文件。
步骤示例
以新版 QQ 的安装路径为例
- 重要文件先 ** 备份 、 备份 、 备份 **!
- 退出 QQ 及后台相关进程
- 剪切文件夹
C:\Program Files\Tencent 到 D:\SoftWare\Tencent
- 以管理员身份运行
命令提示符 (关键词 c\m\d 被屏蔽了)
- 执行
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 的指正,将主要链接方式从「符号链接」改为「目录链接」
感谢诸位飞友提供的建议 |