Windows 10 中的文件链接功能基于 NTFS 文件系统实现,其包含 3 种链接方式:硬链接(Hard Link)、软链接(也称为联接,Junction Link)以及符号链接(Symbolic Link)。
1、NTFS 文件链接概述
所谓 NTFS 文件链接,简单来说就是可以使用多个路径去访问同一个文件或者目录,功能上类似于快捷方式,但快捷方式是 Windows10 应用层级提供的功能,功能上有其不足之处。例如,应用程序不一定能识别并使用快捷方式链接的文件或目录,而NTFS 文件链接弥补了快捷方式不足。
文件链接概念最早出现于 Unix 操作系统,Windows 2000 操作系统开始部分支持文件链接功能。目前在 Windows 10 中,NTFS 文件系统对文件链接的支持日趋成熟。
文件链接对用户而言是透明的,它看上去和普通文件或文件夹没有任何区别,操作方式一样。使用文件链接的好处在于文件链接只是作为一个标记存在,并不占用实际硬盘空间,而且用于文件夹的文件链接作用更为广泛。例如,某应用程序数据只能写入 D 盘某文件夹中,但是 D 盘空间不足,这时可以使用文件链接把 E 盘中的某个文件夹链接到 D 盘中,应用程序数据还是存储在 D 盘,数据实际存储于 E 盘,这样实际上变相地为 D 盘扩充了容量。
Windows 10 启动时不支持文件链接,所以不能对操作系统目录(如 Windows 以反其子目录)使用文件链接,以免操作系统无法启动。
2、硬链接
硬链接是指为一个文件创建一个或多个文件名,各文件名地位相等。用户删除任意一个文件名下的文件,对另外一个文件名的文件没有任何影响,而且对一个文件名下的文件更新,另外一个文件名下的文件也会同时更新。
综合来说,使用硬链接时需注意如下事项:
- 硬链接只能链接非空文件,不能链接文件夹。
- 硬链接文件图标和普通文件图标相同,硬链接属于透明功能。
- 硬链接只能建立同一 NTFS 分区内的文件链接。
- 移除源文件不会影响硬链接。
- 删除其中一个硬链接不会影响源文件。
- 硬链接文件的任何更改都会影响源文件。
- 硬链接不占用硬盘空间。
创建硬链接需要使用 mklink 命令行工具完成。以管理员身份运行命令提示符,执行如下命令:
mklink /H lizhipeng1.txt lizhipeng.txt
其中,lizhipeng1.txt 为创建的硬链接名称,可为其指定保存路径;lizhipeng.txt 为源文件,等待命令执行完毕会提示创建成功,如下图所示。
要删除硬链接,只需保留一个文件,删除其他文件即可。
3、软链接
软链接只支持文件夹的链接,不支持文件的链接。软链接在创建时不管使用相对路径还是绝对路径,创建后全部转换为绝对路径。
使用软链接时需注意如下事项:
- 软链接只能链接文件夹,不能链接文件。
- 软链接文件图标和快捷方式图标相同。
- 软链接只能建立同一 NTFS 分区内的文件夹链接。
- 移除源文件夹会导致软链接无法访问。
- 删除软链接不会影响源文件夹。
- 软链接中的文件进行任何更改都会影响源文件。
- 软链接不占用硬盘空间。
创建软链接同样可以使用 mklink 命令行工具,以管理员身份运行命令提示符,执行如下命令:
mklink /J lizhipeng1 lizhipeng
其中,lizhpneg1 为软链接名称,可为其指定保存路径;lizhipeng 为源文件夹名称,等待命令执行完毕会提示创建成功,如下图所示。
软链接文件夹和快捷方式图标相同,如何去区别两者呢?在命令提示符下定位到软链接所在目录,然后执行 dir 命令,会显示当前目录下的文件或文件夹信息,其中有<JUNCTION> 字样的即为软链接,如下图所示。
要删除软链接,只需删除创建的软链接文件即可。
4、符号链接
符号链接支持文件和文件夹,功能上类似于快捷方式,但区别在于打开快捷方式会跳转回源文件路径,符号链接则不会跳转,而是使用创建后的路径。符号链接在创建的时候可以使用相对路径和绝对路径,创建链接后所对应的也是相对路径和绝对路径。
绝对路径在源文件不移动的情况下允许使用,而相对路径是相对于两个文件的路径,所以两个文件的相对位置没有改变就不会导致链接错误。
综合来说,使用符号链接时需注意如下事项:
- 符号链接可以链接文件和文件夹。
- 符号链接文件图标和快捷方式图标相同。
- 符号链接可以跨 NTFS 分区创建文件或文件夹链接。
- 删除或移动源文件或文件夹,符号链接失效。
- 删除或移动链接文件不会影响源文件。
- 对符号链接中的文件进行任何更改都会影响源文件。
- 符号链接可以指向不存在的文件或文件夹。
- 符号链接不占用硬盘空间。
在mklink命令提示符中执行如下命令,即可创建文件和文件夹的符号链接,如下图所示:
创建文件的符号链接的命令如下:
mklink lizhipeng1.txt D:\test\lizhipeng.txt
其中,lizhipeng1.txt 为符号链接,D:\test\lizhipeng.txt 为源文件路径。创建文件夹的符号链接的命令如下:
mklink /D lizhipeng1 D:\test\lizhipeng
其中,lizhipeng1 为符号链接,D:\test\lizhipeng 为源文件夹路径。
查看文件或文件夹是否为符号链接,只需在命令提示符下执行 dir 命令,就会显示当前目录下的文件或文件夹信息,其中有 <SYMLINKD> (文件夹)或 <SYMLINK>(文件)字样的即为符号链接,如下图所示。
要删除符号链接,只需删除符号链接文件夹或文件即可。