fsutil hardlink不起作用?

时间:2009-04-28 02:25:12

标签: windows symlink hardlink fsutil

我一直在寻找一种在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,内容仍然相同。
  3. fsutil hardlink create命令与copy命令有何不同?如何在Windows下创建真正的硬链接?

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

3 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:1)

  

fsutil hardlink是如何创建的   命令与复制命令不同?   我怎样才能创建一个真正的硬链接   在Windows下?

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

尝试创建非常大的文件(例如视频或磁盘映像)的硬链接。请注意,磁盘上的可用空间未更改(或者如果必须将其他元数据写入磁盘以反映新的dir条目,则不会更改超过几个字节。)

答案 2 :(得分:0)

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

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