有关符号链接的小问题
符号链接与云盘同步
在之前的 云盘同步及 Obsidian 相关 文章里有提到:
兜兜转转还得是微软的
OneDrive
,在cmd
使用mklink /d "D:\OneDrive\Songs" "D:\osu\Songs"
创建链接使D:\OneDrive
这个我个人设定的OneDrive
文件夹(默认在哪来着不记得了)里出现一个Songs
文件夹,进去一看好家伙是D:\osu\Songs
里的东西,这样Windows
方面成功。
其中使用的指令创建了一个符号链接,其中真正的文档处在后者 D:\osu\Songs
中,而前者 D:\OneDrive\Songs
是指向后者的一个符号链接,注意前者原先是不能存在 Songs
文件夹的,否则无法创建符号链接。
这种方案这会引发 OneDrive
无法正确显示是否已同步文件的问题,解决办法是先转移文件到别的地方,右键删除符号链接:
在网上查询了许多方法都不管用,会出现删除后无法创建同名文件夹,文件夹会自动添加
2
后缀的 bug,感觉没死一样阴魂不散。解决办法是直接将符号链接改名为一串极度不会重复的名称(比如一串哈希值什么的)后右键删除,这样就能新建同名文件夹
并将文件转移至网盘,再使用 mklink /d "D:\osu\Songs" "D:\OneDrive\Songs"
即可。
符号链接与 vscode 和 Git
根据以上步骤网盘存储真实数据,使用处使用符号链接将我项目里的 _post
文件夹改为指向 iCloud
里的 帖子
文件夹后,用 vscode
打开项目文件夹会看到 _post
文件夹后提示这是一个符号链接,和平常一样没有任何问题。
但问题出现在 git
同步上,git push
后并不会将符号链接所指向的文件夹上传至 github
,而是符号链接本身。
对于我来说这并不影响,因为我使用 .release_tool/main.py
进行构建并发布至两个仓库——一个是源文件仓库,一个是构建后的 github page
仓库——但如此提醒我们不要滥用符号链接。
因为这玩意又难删资料又这么少玩死了没人管你 😡️