OneDrive 备份 Windows 任意文件夹
TL, DR: 用 Windows 符号链接把现存文件夹链接到 OneDrive 目录下。
背景
出于对硬盘安全的担忧,我决定将部分重要(但不一定敏感)的文件上云。Microsoft 365 家庭版有 1T 的 OneDrive 空间,而且和 Windows 系统的整合程度较好,因此选择了使用 OneDrive。
目前,OneDrive 只能够备份 C:\User\Username\OneDrive
目录下的文件和以下三个 “重要电脑文件夹”:
但是,我的很多重要文件已经存储在了电脑的其他位置(例如非系统盘上、其他子文件夹下)。我不希望为了备份他们而将文件手动移动到 OneDrive 指定的文件夹下。
为了满足这个需求,我发现可以使用 Windows 符号链接 的方式,在不改变原文件位置、不额外占用空间的条件下将现存的文件夹备份到云端。
创建符号链接
符号链接是一种区别为快捷方式、软链接和硬链接的链接方式,可以将任意文件 / 文件夹链接到任意位置。
在 CMD 中,MKLINK
可用于创建各类链接。
> MKLINK
创建符号链接。
MKLINK [[/D] | [/H] | [/J]] Link Target
/D 创建目录符号链接。默认为文件
符号链接。
/H 创建硬链接而非符号链接。
/J 创建目录联接。
Link 指定新的符号链接名称。
Target 指定新链接引用的路径
(相对或绝对)。
这里,我们使用 -D
创建目录符号链接。Link
我们指定为 OneDrive 中要存放备份文件的位置,Target
指定为现存的目录 / 文件的路径。
例如,我想要将 D:\Workspace\Archive
备份到 OneDrive 网盘的 Backup/WorkspaceArchive
文件夹,可以这样做:
- 首先打开
%HOMEPATH%\OneDrive
,然后新建 Backup 文件夹,但不要创建 WorkspaceArchive 文件夹。 - 在当前路径下打开终端(按住
SHIFT
+ 鼠标右键点击选择“在此处打开Powershell窗口”)。 -
输入命令
CMD
进入 Windows 命令行,然后使用MKLINK
创建链接。MKLINK /D %CD%\WorkspaceArchive D:\Workspace\Archive
- 打开 OneDrive 查看上传进度。上传完毕后,云端和现存文件夹就同步了。
当你修改现存文件夹的内容,云上的内容会自动改变。同样,如果删除云上的内容,现存的文件也会被删除。
参考资料
- Windows中的硬链接和软链接(hard link 和 Symbolic link) - Naylor - 博客园 (cnblogs.com)
- Windows系统文件快捷链接(软链接/硬链接/符号链接)mklink_windows软链接mklink_灰色的阳光的博客-CSDN博客