创建符号链接来同步不在onedrive文件夹内的文件
需求
1 | 我的onedrive文件夹在C盘,但是我在D盘有文件需要同步到onedrive文件夹内,并且,我不希望占用C盘空间 |
操作
- 打开
Terminal
,选择cmd
- 输入mklink命令,命令语法为
mklink [[/d] | [/h] | [/j]] <link> <target>
- 比如说,我在D盘有test文件夹,需要同步到C盘的onedrive里
- 那么mklink命令这样写
mklink /d "C:\Users\Yazov\OneDrive - MSFT\test" D:\test
,注意,路径有空格就用英文双引号括起来
可以看到,成功了
同步测试
- 我们在D盘创建一个文件
- 可以看到onedrive里已经有文件了
- 但是在onedrive云盘里没有看到test文件夹
- 这时候就需要重新同步
同步成功 - 从云盘里删除文件试试
可以看到本地onedrive文件还在
这个时候不动,在重新同步一下,发现文件没了
- 重新创建文件,从本地删除试试
从本地删除
发现云上的文件也同步删除了 - 我也试了
释放本地空间
的选项,发现无法释放,因为使用了符号链接的原因,一直是同步状态,哪怕已经同步上onedrive了也是如此 - 在onedrive网页上测试移动文件到另外的地方,本地也会跟着移动,从别的盘移动到C盘onedrive目录里
测试重装系统
- 我这里以hyper-v虚拟机为例
- 重新登录上去之后,发现用符号链接的文件夹也出现在了onedrive文件夹里
重装系统之后的onedrive文件,可以看到videos文件夹
- 在这里,我在本地电脑重新创建了test文件夹,同步到onedrive里,test文件夹里有a.txt,b.txt,c.txt三个文件
- 在虚拟机里同步
把test文件夹剪切到其他地方,然后使用mklink命令
在虚拟机里进行添加文件操作
- 同步之后可以看到,本地onedrive也同步了虚拟机添加的文件,但是本地的符号链接失效了
最后
- 符号链接同步onedrive的优缺点
- 优点:
- 如果文件不在onedrive所在盘的话,就不会占用所在盘的空间,对于onedrive在C盘的用户来说,是利好的
- 可以从各个地方同步文件,不用把文件一股脑放在onedrive文件夹里
- 缺点:
- 同步需要主动同步。也就是先暂停同步,再重新同步,才会同步文件上去
- 文件无法释放空间。始终需要文件保存再本地,不需要了也无法删除,对于本地空间是一种浪费行为
- 同一个文件夹,只能有一台电脑进行符号链接(也算是个缺点吧)
- 优点:
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Welcome to Link's Blog!
评论