巧用符号链接移动文件夹位置

Posted 乐百川

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了巧用符号链接移动文件夹位置相关的知识,希望对你有一定的参考价值。

有些时候我们可能因为系统或者某些软件的缓存占得比较多,想把他们从C盘移动到其他地方。但是软件本身并没有提供修改缓存文件夹的功能。这下应该怎么办呢?其实还真有一个好办法可以完美解决,这就是今天要为大家介绍的符号链接。

符号链接这个名词经常使用Linux的同学应该听说的比较多。如果你没听说过这个名词,也没有关系。因为他真的非常好理解。简单的说,符号链接就是快捷方式,不过和快捷方式不同的是,符号链接会被识别为真实的文件或者文件夹。而快捷方式这个东西,如果你在Windows下用过命令行的话,应该可以注意到快捷方式只是一个特殊的文件,它有自己的文件扩展名lnk。

正因为此,如果你将一个软件的重要目录移走,然后用那个目录的快捷方式替换它,那么这个软件是无法正常运行的。但是如果你用符号链接替换它的话,软件是可以正常运行的,就像从来没有移动过这个文件夹一样!

好了,说了这么多,下面就来看看如何使用符号链接这个功能吧!在cmd和powershell中都有对应的创建符号链接的命令,不过这里我只介绍powershell的命令。powershell作为cmd的替代品。假如如果有想学习Windows命令行的同学的话,最好学习powershell。cmd这种东西能不碰尽量不碰。

命令十分简单,只需要在New-Item的参数上添加-ItemType SymbolicLink,然后在指定要创建符号链接的源文件即可。

New-Item -Path C:\\LinkDir -ItemType SymbolicLink -Value F:\\RealDir

下面介绍几个使用场景。例如我现在有个游戏在机械硬盘里加载速度有点慢,所以准备把他放到固态硬盘里面。但是游戏启动器并不支持自定义游戏路径的功能。所以这时候符号链接就可以派上用场了。首先把游戏直接移动到固态硬盘,然后在原路径下创建一个指向现在路径的符号链接。

New-Item 'StarCraft II' -ItemType SymbolicLink -Value 'C:\\Games\\StarCraft II'

然后再用启动器启动游戏,这时候可以发现,游戏其实已经移动了,但是启动器还以为游戏在原来的位置。当然如果你右键属性查看符号链接的话,会发现他和快捷方式一样有一个小箭头,不过并没有什么影响。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UZQtH17p-1587548667529)(https://upload-images.jianshu.io/upload_images/832668-c93a8acdcbd35527.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

另外假如你C盘空间经常不足的话,也可以考虑使用符号链接的方式将用户文件夹下的AppData目录移动出去,这个目录保存了用户使用时几乎所有的程序缓存,移动它可以保证C盘空间保持一个稳定值。当然由于系统运行的时候随时都会向这个目录写入东西。所以移动的时候最好在PE环境,或者安全模式下移动,防止因为系统正在运行导致文件夹移动失败。

以上是关于巧用符号链接移动文件夹位置的主要内容,如果未能解决你的问题,请参考以下文章

巧用符号链接迁移 HDFS 数据,业务完全无感知!

leetcode448——巧用符号标注已出现数字

14-Linux核心知识-文件属性-下部-特殊符号-通配符

巧用ThreadPool.QueueUserWorkItem实现接口二次调用

Bash 脚本实例:获取符号链接的目标位置

Linux系统管理_主题02 :管好文件_2.4 链接文件_ln