前言:今天上线,发现盒友私信我,问我Steam和Epic的GTA5游戏如何共用一个文件夹。我记得我大概是在哪个帖子里说过这个技巧,大概有个把月了,今天就来教教大伙,如何让Steam和Epic的GTA5游戏如何共用一个文件夹
首先,我们先要知道,Steam和Epic上的GTA5,游戏文件内容是一样的,只有最外层的文件夹名字是不一样,如果更改了文件夹名字就会导致游戏无法被识别,这也就意味着,如果你在Steam和Epic上都下载了GTA5,你的电脑上就会有两份GTA5游戏文件,并且更新的时候每个平台都要打开各更新一次
如果你电脑上有两个平台的GTA5账号,正巧又下了两个平台的GTA5,那么今天这个方法学会了之后,最起码就可以在你电脑上省下114G的空间,以及不用更新两次游戏
硬盘空间不多的电脑,合理分配空间是一门学问
可能硬盘空间足够的同学会对这个方法嗤之以鼻,毕竟现在1T固态的低价都在200左右了(当然质量另说),但是对于硬盘空间紧张的、网速不快的同学来说,一个游戏下两次,存两次,占用两个位置,实在是太麻烦了
首先来看成果,两个游戏文件夹,内容 大小 路径 都一致。唯一不同的就是,Epic版的GTA5文件夹属性上面多了一个快捷方式的标签
“你就是我,我就是你”
可能有人说:这不就是快捷方式吗?
这么想你就错了,你去弄个游戏文件夹的快捷方式,看看你的Steam/Epic理不理你
而用这个方法就可以被识别,这,就是 mklink软链接
mklink软链接,类似于快捷方式,但是又不是快捷方式,你可以把它想象成连体婴,有两个头,却共用同一个身体。所以虽然是“两个人”,但是却只占用了“一个人”的位置。mklink软链接可以跨盘/跨分区创建,但要注意,创建好之后,你就不能随意重命名、移动、删除源文件夹,否则创建出来的软链接文件夹就会失效和报错。
画了一张图,应该可以理解吧?
OK,大致了解了mklink软链接之后,我们就开始学习创建方法吧
————
核心就一串代码:mklink /d 要创建的文件路径 已存在的文件路径
————
例:mklink /d C:\Users\Administrator\Desktop\桌面文件 D:\桌面文件
代表:我要在C盘桌面上创建一个名为“桌面文件”的软链接,连接内容的来源是D盘的 桌面文件 文件夹
这样我就可以把所有的文件放到 D:\桌面文件 文件夹内,不占用桌面存储空间,而在我的桌面上也能正常看到这些文件了
那这时有人会说了,我直接把快捷方式创建到桌面不也一样吗?
其实在这个例子里,快捷方式和软链接,它们俩确实是没差别的,但是如果碰到某些场合,就体现出它的好处了
比如,学编程的同学都知道,Visual Studio的部分组件只能安装在C盘,即使你把它主程序装在其它盘,但是它的部分组件就只能安装在C盘。但是如果我们在D盘创建一个文件夹,然后把那些在C盘的组件文件移动过来,然后创建一个软链接到原来的位置,那不就实现了“身在曹营心在汉”了吗?这样既能在C盘找到这些组件文件,又不占用C盘的空间。
同样的,大部分软件你安装在D盘,E盘,然而你会发现它们的数据都在——C:\Program Files——C:\Program Files (x86)——C:\ProgramData——C:\Users\Administrator\AppData\Local——C:\Users\Administrator\AppData\LocalLow——C:\Users\Administrator\AppData\Roaming——这几个文件夹里,然后程序产生的缓存又在——C:\Users\Administrator\AppData\Local\Temp——里,那么有小机灵鬼就会问了“那这些文件夹能否做成软链接呢?这样就不占用C盘空间了”
没错,是可以这么做的。首先把这些文件夹复制到其它盘,然后删除原文件夹,再使用软链接把文件夹链接到C盘对应的位置里,但是要注意,制作软链接的时候,文件是否有占用,如果占用的话,需要停止相关程序的运行才能继续删除文件制作软链接。
还要注意一点:当路径中间有空格时,需要将整个路径加上英文引号(没有空格时也可以加引号)
例:mklink /d "C:\Program Files\Common Files" D:\Common
或者:mklink /d "C:\Program Files\Common Files" "D:\Common Files"
————
看到这里,想必你应该已经大致知道GTA5的软链接怎么制作了
————
如果你电脑上已经有两个平台的GTA5游戏文件夹,首先你要卸载掉一个(注意是卸载)。
如果你电脑上只有一个平台的GTA5游戏文件夹,那就保留它,往下看。
如果你电脑上一个平台的GTA5游戏文件夹都没有,那就接着往下看。
找到你Steam安装GTA5的文件夹(没安装的就安装一个,电脑上仅需要一个平台的GTA5游戏文件夹)
点击上方路径地址栏
右键复制地址
随便找一个地方把它粘贴进去,比如记事本
然后在它的上一层目录,或者去到你EPIC的游戏安装路径里,按住Shift键,右键文件夹空白处选择“在此处打开命令窗口”
如果你按住Shift键,右键没有“在此处打开命令窗口”的话,那就在开始菜单里,找到命令提示符,然后右键它,选择以管理员身份运行
这时候就会打开管理员级别的CMD窗口了
没有管理员账户/权限则无法创建软链接
还记得前面说的核心代码吗?
mklink /d 要创建的文件路径 已存在的文件路径
已存在的文件路径就是上面让你复制的GTA5游戏文件路径,比如我的是“E:\Steam\steamapps\common\Grand Theft Auto V”,←注意文件名有空格,待会要用英文的引号框起来
然后要创建的路径文件就是你的EPIC游戏下载存放的位置,比如我是直接改成了下载在Steam的文件夹内
所以我的代码就是 mklink /d E:\Steam\steamapps\common\GTAV "E:\Steam\steamapps\common\Grand Theft Auto V"
注意两个路径的中间有空格分隔开
如果你的EPIC游戏固定安装在其它位置,比如F盘根目录,那就是 mklink /d F:\Epic\GTAV "E:\Steam\steamapps\common\Grand Theft Auto V"
EPIC的GTA5文件看似在F盘,但实际是用软链接引用了原本在E盘Steam的GTAV
这样,软链接就算是创建好了,接下来只要打开Epic,点击GTA5进行安装,然后安装目录选择刚才设定好的路径就行,比如 E:\Steam\steamapps\common\ 或者 F:\Epic\ (如果我没记错的话,GTAV这个文件夹是不需要选的,只需要选到上一层文件夹,它会自己创建文件夹,看到文件夹里有,就会直接合并在一块了)由于我们已经在这个文件夹里创建好了软链接,EPIC就会检查一遍文件是否正确,而不用下载了。
如果它没有检查,那就手动点一下验证
这样的话,以后打开任何一个平台,游戏都只需更新一次,另一个平台打开会自动扫一遍,不会下载
创建完了之后,如果你不想要这个软链接了,直接把这个创建出来的文件夹删了就行,删了它并不会影响原来的文件夹
如果想查看这个目录下有哪些软链接,就在目录文件夹里按住Shift键,右键选择“在此处打开命令窗口”,然后输入 dir /AL /S ,再按回车就可以看到软链接文件夹的名字和它的文件来源,比如下面代码的意思是: 在路径E:\Steam\steamapps\common里,于2024年9月21日,16点22分,创建软链接文件夹GTAV,文件夹的来源路径是 E:\Steam\steamapps\common\Grand Theft Auto V
你学会了吗?别cy了,赶紧动手试一试。
——————————————————
来点课外拓展:
mklink除了创建软链接之外,还有硬链接和目录联接,三个代码分别是/d /h /j
/d,软链接,可用于文件和文件夹,可以跨分区创建,创建出来的软链接文件/文件夹可以被移动。源文件不可移动、重命名、删除。软链接类似于快捷方式,但可以被程序识别
/h,硬链接,只可用于文件,不能跨分区创建,创建出来的硬链接文件等于源文件,但创建再多都只指向一份文件,两份/多份文件移动、重命名、删除都互不影响,但只有所有文件都被删除时,这个文件才算消失(就像是分身,所有的分身都是我,只要有一个分身存在,我就不会消失)
/j,联接点,只可用于文件夹,可以跨分区创建,用/j创建出来的联接点,在被移动到其它位置时,文件夹不会被移走,里面的文件会被移走,变成原来位置和新位置两个不关联的联接点,源文件不可移动、重命名、删除
——————————————————
悄悄说一句:其实很多软件已经在你电脑上创建了软链接
比如你在C盘根目录运行 dir /AL /S ,就会发现满满一大页的软链接
甚至还能看到WPS云盘原来也是用软链接形式把云盘链接到你电脑上的(2014年的文件...救命啊,过去的回忆疯狂向我袭来)
如果你电脑上还有其他的云盘或者流氓视频软件比如腾讯视频,也会在这里看到它的软链接
看到又不少同学问其它游戏,再补充一下,需要满足条件:同一个设备,Windows系统,文件一致(或者游戏没有启动检查/检查不严格),3个条件都满足了就可以
Linux系统的命令是:
软链接 ln -s 目标文件 符号链接文件,例如 ln -s /path/to/target_file /path/to/symbolic_link
硬连接 ln 源文件 硬链接文件,例如 ln /path/to/target_file /path/to/hard_link
(好了,不能再拓展了,Linux我是真不懂)