NTFS的文件链接

了解 NTFS 硬链接、结点和符号链接

作者:Conrad Chung, 2 BrightSparks

原文链接: https://www.2brightsparks.com/resources/articles/NTFS-Hard-Links-Junctions-and-Symbolic-Links.pdf

使用 Deepl 翻译并简单校对

简介
自 Windows NT 4.0 和 Windows 2000 以来,微软在其 NTFS 操作文件系统中实现了链接工具。这些链接为用户访问他们的数据提供了一种方便的方法。多年来,微软持续改进这些可以用来将文件和/或目录链接在一起的工具。最新形式的文件链接是在 Windows Vista 中引入的,构成操作系统的一部分,直到最新版本的 Windows。在这篇文章中,我们将了解这些文件链接是什么,以及它们之间有什么不同。

什么是 NTFS 硬链接、结点和符号链接?
硬链接、结点和符号链接是 Windows 用来关联其他文件、目录或卷的链接过程。创建文件链接的方法之一是使用命令行程序 mklink。

创建一个硬链接:

mklink /H linkName target

创建一个结点:

mklink /J linkName target

创建一个符号链接:

mklink /D linkName target

以下章节详细介绍了每种类型的文件链接。

硬链接是一个文件,它代表同一卷上的另一个文件,但实际上并不重复该文件的数据。可以创建一个以上的硬链接来指向同一个文件。硬链接不能链接到不同分区、卷或驱动器上的文件。不支持目录上的硬链接,因为它将导致父目录条目的不一致。

尽管硬链接本质上是它所指向的目标文件的一个镜像副本,但不需要额外的硬盘空间来存储硬链接文件。如果一个 1 GB 的文件被 3 个硬链接镜像,分区上使用的总空间将只有 1 GB 而不是 4 GB。

此外,如果任何一个硬链接或原始文件被删除,数据将不会被删除,其余的其他链接仍然能够访问它。通过任何一个硬链接或原始文件对数据内容所做的更改将自动传播到其他硬链接中。硬链接只适用于支持 NTFS 分区的微软 Windows 操作系统(Windows NT 4.0 或更高版本),而 FAT 和 ReFS 文件系统则不适用硬链接。

使用硬链接的一个例子是,当一个用户需要将一个文件存储在两个不同的文件夹中。他可以把文件复制到另一个文件夹,并有同一文件的两个副本。然而,将使用两倍的存储空间。另外,如果一个文件的内容发生了变化,另一个文件就会过时,除非把较新的文件复制过来取代它。这两个问题都可以通过使用硬链接来解决。

结点 (Junctions)

结点有时被称为软链接,它的功能是引用一个目标目录,这与指向一个文件的硬链接不同。可以创建结点来链接位于不同分区或卷上的目录,但只能在同一台计算机的本地进行。它是通过实现了 NTFS 的 reparse points 特性来做到这一点的。结点中的重定向目标是由绝对路径定义的。绝对路径指的是包含根元素和定位目标所需的完整目录列表的路径。例如,\Main\Folder\report 是一个绝对路径。定位目标所需的所有信息都包含在路径字符串中。

像硬链接一样,目录结点不会占用额外的空间,即使它们被存储在驱动器分区上;它们的功能是指向原始目录中的原始文件。因此,应该注意的是,如果目标被删除、移动或重命名,所有指向目标的结点都会中断,继续指向一个不存在的目录。来自任何一个结点链接或目标的内容变化将自动传播到其他结点。

结点只与 Windows 2000或更高版本兼容。一个经常使用结点的例子是在 Windows Vista 上,C:\Documents and Settings 是一个指向 C:\Users 的结点。因此,引用硬编码的传统文件路径的老程序可以继续在 Vista 中工作。

符号链接最近在 Windows Vista/Windows Server 2008 或更高版本中被引入。NTFS 符号链接是一个文件系统对象,它指向另一个文件系统对象。用更简单的话来说,它是一种更高级的快捷方式。符号链接可以指向本地计算机上的任何文件或文件夹,或者使用 SMB 路径指向网络上的目标(远程端的目标机需要运行 Windows Vista 或更高版本)。它们不使用任何磁盘空间。

符号链接可以使用相对路径或绝对路径来指向其目标。相对路径必须与另一个路径相结合,以便正确访问目标文件。关于绝对路径和相对路径的区别的详细解释,请参考这个链接(译注:链接经过更新):

https://docs.microsoft.com/zh-cn/windows/win32/fileio/creating-symbolic-links

符号链接对用户来说是透明的——它们看起来像正常的文件或目录。所有的应用程序都能识别链接和目标。像结点一样,如果目标被移动、重命名或删除,符号链接将变得过时。操作系统不会检查目标是否存在。

硬链接、结点和符号链接对照表
由于 B 站专栏没有表格,直接贴 vscode 截图

Pasted image 20240609102707.png

硬链接和结点的示意图

Pasted image 20240609102718.png

我觉得不需要翻译了吧

SyncBackSE 和 SyncBackPro 中使用文件链接的配置设置
(译注:略)

总结
现在你已经掌握了关于硬链接、结点和符号链接在 NTFS Windows 操作系统中如何工作的基本知识,希望你能更好地认识与之相关的问题。作者:72 EU https://www.bilibili.com/read/cv11227535/ 出处:bilibili

## NTFS文件连接扩展配置工具