1

我正在寻找一种在 Windows 下创建硬链接的方法,我发现了这个页面:http ://technet.microsoft.com/en-us/library/cc788097.aspx

为了试一试,我在 C: 驱动器的根目录上创建了一个文件 (1.txt),其中包含 100 行以下内容:

C:\1.txt(2.598 字节):

test test test test test

然后我打开命令提示符并输入:

fsutil hardlink create C:\2.txt C:\1.txt

成功,创建了 2.txt,但是当我去查看它的大小时,它正好有 2.598 字节,并且还注意到了一些奇怪的行为(据我对硬链接的理解):

  1. 如果我删除 2.txt(硬链接文件)1.txt 不会被删除,反之亦然。
  2. 如果我在删除 1.txt(原始文件)后打开 2.txt,内容仍然相同。

fsutil hardlink create 命令与 copy 命令有何不同?以及如何在 Windows 下创建真正的硬链接?

我使用的是 Windows XP SP 3,我的文件系统是 NTFS。

4

3 回答 3

5

这正是应该发生的行为。您确定您了解硬链接的工作原理吗?硬链接实际上只是文件系统中引用完全相同的文件的多个条目。如果您创建一个文件的硬链接并修改该文件的一个实例,则另一个文件将与您的更改一起显示,因为它们都引用磁盘上的相同数据块。

当您删除其中一个硬链接时,您实际上只是删除了一个引用该文件的文件系统条目。在您删除其所有硬链接(包括原始链接)之前,该文件不会被删除。删除 1.txt 后,2.txt 仍然存在,并且引用了原来存在的同一个文件,只是现在只有一个文件系统条目引用该文件(即 2.txt)。2.txt就是那个文件。

于 2009-04-28T02:29:08.097 回答
1

fsutil hardlink create 命令与 copy 命令有何不同?以及如何在 Windows 下创建真正的硬链接?

创建硬链接文件后,尝试编辑其中一个。您会发现更改反映在两个文件中。

尝试创建一个非常大的文件(比如视频或磁盘图像)的硬链接。请注意,磁盘上的可用空间没有改变(或者改变不超过几个字节,如果必须将额外的元数据写入磁盘以反映新的 dir 条目)。

于 2009-04-28T02:42:19.763 回答
0

这是一个真正的硬链接。在 UNIX(我不熟悉 Windows 变体)中,文件只是磁盘上的一组数据(简单地说)。为该文件命名的是目录条目本身。

当您有两个目录条目指向同一个基础文件时,删除其中一个不会删除该文件,除非它是附加到它的最后一个目录条目(并且该文件仍未被进程打开,但这是另一回事)。

于 2009-04-28T02:38:19.633 回答