本文转自 让 Onedrive 云盘同步本地任意一个文件夹 (适用于 Windows)_Caleb_Sung 的博客-CSDN 博客_onedrive 同步指定文件夹
0 前言
购买了 Office365 家庭版之后试用了一下订阅自带的云盘,充分体会到了 Onedrive 的潜力。办公文档上云,妈妈再也不用担心系统崩溃文件丢失啦~
office 的文件保存在 Onedrive 上可以进行自动保存, 但问题是,Onedrive 的文件只能统一同步到一个文件目录下,而当想要同步的文件目录不止一个的时候就不太方便,因此这里给出一个解决办法:
利用 mklink 语句给待同步的文件目录在 Onedrive 文件夹下创建映射。
1 关于 mklink 命令
1.1 简介
NTFS 符号链接又称 「符号链接」,是 NTFS 文件系统中指向文件系统中的另一个对象的一类对象,被指向的对象叫做 「目标」。mklink 是 Windows 下用于创建符号链接的工具,存在于 Windows Vista 及以后版本的 Windows 操作系统中。
1.2 使用方式
MKLINK [[/D] | [/H] | [/J]] Link Target
说明:
/D 创建目录符号链接而不是文件符号链接 (默认为文件符号链接)
/H 创建硬链接而不是符号链接
/J 创建目录连接点
Link 指定新的符号链接名称
Target 指定新链接引用的路径 (绝对路径或者相对路径均可)
1.3 注意
参数 Link 和 Target 要求不能使用 Windows 中不允许用作文件名的字符 (\ / : * ? " < > |)。并且如果 Link 和 Target 这两个参数中需要包含空格,则必须使用英文双引号将内容引起来,以避免参数识别错误。
1.4 限制
符号链接在系统启动的时候是不工作的,所以下面这些文件 (夹) 是不可以作为符号链接替换的: \Windows
\Windows\system32
\Windows\system32\config
2 具体操作方法
打开 Onedrive,在右下角系统托盘上点击右键,选择设置。选择 「自动保存」 选项卡,在 「保护重要文件夹」 中勾选文档。这一步的操作是为了保证文档文件夹中的内容电脑时刻与云端保持同步。注意:选择之后本地的文档将成为指向 Onedrive 文件夹的目录,因此保存在其中的虚拟机或 VS 工程文件等有可能出现无法读取的现象,请注意在操作后进行调整。
假设我要同步的本地文件夹是E:\工作
,而 Onedrive 在本地的保存目录为 C:\Users\用户名\OneDrive
。
以管理员模式打开命令提示符 (Win10 用户可直接搜索 cmd,然后右键命令提示符搜索结果的程序,选择以管理员权限运行)。
在打开的窗口中输入命令:
mklink /d C:\Users\用户名\OneDrive\工作 E:\工作。
注意:执行本操作时请确保 C:\Users\用户名\OneDrive
下没有名为 「工作
」 的目录,否则将会报错。
回车键执行后,命令提示符返回 「……创建的文件链接」 字样的文字,即说明建立连接成功。 注意:如果文件目录中包含空格,则在输入命令的时候应使用英文双引号将该完整目录括起来。
到这里,所有的步骤就完成了,你可以尝试进行添加文件,删除文件操作。你会发现,两个不同地址的文件随时在保持着同步 (同一个文件拥有了两个地址:原地址和 Onedrive 目录下的地址)。同理,当打开 Onedrive 文件同步功能是,该目录下的文件也与云端保持着一致。
===============================
扩展: windows 系统下的文件夹链接功能 mklink/linkd
原文地址:windows 系统下的文件夹链接功能 mklink/linkd - plusium - 博客园 (cnblogs.com)
vista 及以上系统的 mklink 命令可以创建文件夹的链接 (感觉像是文件夹的映射)。因为是从底层实现文件夹链接,所以这个链接是对应用程序透明的。
(windows 2000,xp,server 2003 的相应功能是 linkd,这里只说说 mklink)
比如,我有一个文件夹叫 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 下的应用程序的使用了。
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 文件系统上才能使用。
===============================
再扩展:删除或取消符号链接:
原文地址 windows 软链接 (mklink) 的建立及删除的用法示 例windows 软链接的建立及删除
什么是软链接?mklink 是个什么东东?
如果用过 Linux ,那想必也看到过符号链接 (这是一种特殊的文件),也用过 「 ln 」 这个链接命令,mklink 和 ln 的功能几乎一样。mklink 便是用来创建符号链接的,这个命令并不知名,使用的人也不多。自从 Vista 以后,微软便在 widows 中偷偷地用起了这个工具。在用户目录下,可以看到很多很像快捷方式的文件,当然这是隐藏的,但却不能打开,其实这便是符号链接。Vista、Win7 才内置有 mklink 这个命令,XP 是没有的,XP 的话网上查找并下载 linkd 。
语法 mklink [[/d] |[/h] |[/j]]<Link><Target>
/d 创建目录的符号链接。 默认情况下 mklink 中创建文件的符号链接。
/h 创建硬链接,而不是符号链接。
/j 创建目录软链接。
<Link> 指定正在创建的符号链接的名称。
<Target> 指定新的符号链接指向的路径 (相对或绝对)。
/? 在命令提示符下显示帮助。
具体示例如下:
1. 建立举例
建立 d:\develop 链接目录,指向远程的目标服务器上的 e 盘的对应目录
mklink /d d:\develop \\138.20.1.141\e$\develop
建立 d:\develop 链接目录,指向远程的目标服务器上的 e 盘的对应目录
mklink /d d:\develop \\138.20.1.141\e$\develop
2. 删除举例
删除虚拟的链接目录,并不会删除远程文件夹真实文件,注意千万不能用 del,del 会删除远程的真实文件。
rmdir d:\develop
注: d:\develop 是指 OneDrive 或远程服务器文件夹,非本地文件,经测试,该命令 OneDrive 或远程服务器文件夹,本地不受影响。
=====done=====