mklink——Windows文件同步神器

Windows平台常用的快捷方式,用于快速访问某个目录或文件,类似收藏夹的书签。
除了快捷方式,Windows命令行还提供了mklink命令,用于创建链接(make link)。链接和快捷方式不同,快捷方式像书签,是一种文件的存在形式,而链接是一种关系,不存在新的文件,类似于别名。

mklink需要打开命令行使用,用法:

1
2
3
4
5
6
7
8
9
10
11
12
>mklink
Creates a symbolic link.

MKLINK [[/D] | [/H] | [/J]] Link Target

/D Creates a directory symbolic link. Default is a file
symbolic link.
/H Creates a hard link instead of a symbolic link.
/J Creates a Directory Junction.
Link Specifies the new symbolic link name.
Target Specifies the path (relative or absolute) that the new link
refers to.

有三种形式的链接:

  • /D:符号链接,用于目录,可跨本地或网络磁盘,作用不大
  • /H:硬链接,用于文件,只能同一磁盘
  • /J:联结,用于目录,可跨本地磁盘

本文要介绍的是联结——文件同步神器。

如果把目录比作一间仓库,目录内的文件是仓库中的货物,文件夹是这间仓库的大门。那么联结就是给这间仓库再开辟一个大门,而且这个门是任意门。想象一下,你可以从卧室的衣柜门进入到这间仓库,拿到里面存储的货物。

放在Windows平台说明,就是有两个路径都可以访问到同一片区域存储的文件。有什么实际的用法呢?

1. 跨仓库同步文件

例如两个仓库使用到同样的文件,比如同一批驱动文件。当驱动文件在一个仓库修改时,需要手动对比两个仓库的内容,将修改点同步到另一个仓库。而使用联结,在另一个仓库创建这个驱动目录的联结。不管在哪个仓库修改驱动文件,在另一个仓库的驱动文件也是完全实时同步修改(废话,因为两个仓库的驱动其实是同一份文件)。再也不用担心忘记同步文件。

2. 不重新安装,移动程序文件

当装在C盘的程序占用了大量空间(例如邮件/微信的存储目录),而又不好重新安装时。把存储目录移动到D盘,然后在原位置创建一个联结。对于程序来说,它感知不到任何改变。而占用空间的文件实际已存放在D盘。

除了联结的这两种用法,硬链接也可以用于类似需要使用同样文件的场景,mklink堪称Windows平台的文件同步神器。