Photo by Florian Olivo / Unsplash

MKLINK - 同步 windows 下的所有文件

数字玩具 2022年01月18日 14:23

硬盘里各处都放着文件,虽然有好好分类,但是当分类越来越多的时候,已经完全不知道东西都在哪儿了!! 而且,FF14 里的用户数据已经把我搞疯掉一次咯,重装完之后进入游戏,界面完全乱掉当时想撞死的心都有了,悲。 还有博客的 Markdown 文件,不会因为想要同步,所以把整个 blog 都放进云盘,不会吧不会吧。

然后,发现了 mklink

介绍

在 cmd 下输入 mklink /?,系统会列出所有的命令。

注意,mklink 为 CMD 中的内置命令,如果在 PowerShell 中使用,需要先输入 cmd 切换为 CMD 在使用。
1
2
3
4
5
6
7
8
创建符号链接。

MKLINK [[/D] | [/H] | [/J]] Link Target
        /D        创建目录符号链接。默认为文件符号链接。
        /H        创建硬链接而非符号链接。
        /J        创建目录联接。
        Link      指定新的符号链接名称。
        Target    指定新链接引用的路径(相对或绝对)

Copy

  • 在任何情况下都推荐使用绝对路径 /j,不推荐使用 /d

使用

举例

比如你的 Onedrive 在 E 盘,FF14 在 D 盘,想要同步 FF14 中的用户数据 FINAL FANTASY XIV - A Realm Reborn 文件夹,那么可以在 cmd 下输入:

1
mklink /j "D:\FFXIV\最终幻想XIV\game\My Games\FINAL FANTASY XIV - A Realm Reborn" "E:\Remote\OneDrive\Game\FFXIV\数据备份\1" 

Copy

  • 因为软链接不能使用相同的文件名称,所以 Onedrive 下的文件夹重命名为 1

Obsidian 与 Hugo

首先在磁盘中找到两个软件的存储位置,例如:我的 Obsidian 的 Vault 在 E:\Notes 目录,Hugo 博客的 post 文件夹在 E:\Remote\Hugo\blog\content

将文章备份后,将 Obsidian 中存放博客文章的文件夹博客文章与 Hugo 中的 post 文件夹删除,再执行命令:

1
2
# 这里的“博客文章”与“post”文件夹应该都不存在
mklink /j "E:\Notes\博客文章" "E:\Remote\Hugo\blog\content\post" 

Copy

执行命令后,会发现 E:\Notes 文件夹下出现一个博客文件夹,但是双击打开的时候会有 “此位置不可用,请确保…” 之类的提示。解决办法很简单,重新在 Hugo 的 content 下新建一个 post 文件夹就好咯。这时两个位置将会软连接至一起,将备份的文章再次放入大功告成。

问题

如果在 OneDrive 中使用时发生问题:

Q:为什么 Onedrive 同步被挂起了?

A:这就是为什么我上面的命令本地文件夹在前,Onedrive 在后的原因🥳

标签

吕楪

博主.本博客的所有者,一切的开始。