方法
场景:我需要在在 OneDrive 中创建一个“备份同步”文件夹来同步本地的“OneNote”备份文件。
第一步
打开OneDrive文件夹,复制路径:
C:\Users\username\OneDrive
第二步
打开需要添加同步的本地文件夹,复制路径:
C:\Users\username\AppData\Roaming\Notepad++\backup
第三步
以管理员权限运行 cmd,“备份同步”为要创建的文件夹:
mklink /d C:\Users\username\OneDrive\notepad++ C:\Users\username\AppData\Roaming\Notepad++\backup
回车后显示:“为 C:\Users\username\OneDrive\notepad++ <<===>> C:\Users\username\AppData\Roaming\Notepad++\backup 创建的符号链接”,即完成。
注意:OneDrive同步文件夹中若已存在此文件夹,则不能创建链接。
接下来就可以在本地文件夹增删文件,OneDrive中会自动同步。
扩展:windows 下的几种常见链接
1,上面建立的链接属于软链接(/j),还有符号链接(/d)和文件的硬链接(/h)。
符号链接和软链接大致相同,区别在于,软链接是绝对路径链接,而符号链接允许相对路径的链接。
比如,分别创建c:\data\tmp的符号链接c:\1和软链接c:\2,那么c:\1指向的就是同级文件夹下的data文件夹下的子文件夹tmp,而c:\2指向的是c:\data\tmp这样的绝对路径。影响就是,如果把c:\1和c:\2这两个文件夹移动到d盘,那d:\1的链接就失效了,而d:\2仍然有效。
文件的硬链接是对文件创建的链接,比如对c:\data\1.txt创建链接c:\data\2.txt,那么这两个文件就是同一个文件的两个等价别名了,相当于是指向同一个硬盘存储空间的两个指针,删除其中任何一个都不影响另一个文件。但是限制就是这种链接不能跨分区。
2,软链接和符号链接不能跨磁盘。
3,这个功能必须是在ntfs文件系统上才能使用。
4,快捷方式
其实我们最熟悉也是最常用的快捷方式并不属于传统概念上的“链接”。虽然似乎快捷方式有点类似于软链接,但是它们的本质还是非常不同的。链接其实更贴近操作系统和文件系统的概念。而快捷方式,其实是一个真真实实的以lnk作为文件类型的文件。只不过操作系统(更确切的说是Windows的shell,explorer)可以对这种lnk文件解释而已。而快捷方式的功能其实也要比传统的Linux或WIndows的软链接的功能更强大一些。如果我们打开一个快捷方式的属性,我们就会发现原来在软链接的属性中不可修改的部分都变成了可以修改的,这里面包含了文件的打开方式,快捷键,以何种窗口模式打开等属性。
也就是说,快捷方式不同于软链接的地方,就是它不仅仅是个包含文件路径的文件,而是增加了许多其他信息。这种和窗口化相关的信息如果基于文件系统自然是非常不便的,所以M$就单独设计了lnk文件,由explorer来执行。
5、比如,我有一个文件夹叫C:\Program Files,但是c盘空间不多了,就想把一些应用程序转移到d盘,但是直接剪切过去肯定行不通,应用程序会报错,所以首先把C:\Program Files文件夹整个移动(剪切)到d盘,再执行命令:
mklink /j "C:\Program Files" "D:\Program Files"
这样c盘下面就会多出一个带快捷方式图标的文件夹,全称就是"C:\Program Files",双击进去其实就转到了D:\Program Files。
而C:\Program Files这个文件夹是对应用程序透明的,也就是说,除了windows自己,应用程序并不知道C:\Program Files下面的东西其实已经转移到d盘了,还当它们仍然在c盘。这样就不影响原来C:\Program Files下的应用程序的使用了。