Windows fsutil hardlink不';不行?
我正在寻找在Windows下创建硬链接的方法,我发现了以下页面: 为了试用,我在C:驱动器的根目录下创建了一个文件(1.txt),其中包含100行以下内容: C:\1.txt(2.598字节): 然后打开命令提示符并键入:Windows fsutil hardlink不';不行?,windows,symlink,hardlink,fsutil,Windows,Symlink,Hardlink,Fsutil,我正在寻找在Windows下创建硬链接的方法,我发现了以下页面: 为了试用,我在C:驱动器的根目录下创建了一个文件(1.txt),其中包含100行以下内容: C:\1.txt(2.598字节): 然后打开命令提示符并键入: fsutil hardlink create C:\2.txt C:\1.txt 成功,创建了2.txt,但当我查看它的大小时,它正好有2.598字节,并且还注意到一些奇怪的行为(就我对硬链接的理解而言): 如果我删除2.txt(硬链接文件),则不会删除1.txt,反之亦然
fsutil hardlink create C:\2.txt C:\1.txt
成功,创建了2.txt,但当我查看它的大小时,它正好有2.598字节,并且还注意到一些奇怪的行为(就我对硬链接的理解而言):
我使用的是Windows XP SP 3,我的文件系统是NTFS。这正是应该发生的行为。你确定你了解硬链接的工作原理吗?硬链接实际上只是文件系统中引用完全相同文件的多个条目。如果创建指向某个文件的硬链接并修改该文件的一个实例,则另一个文件将显示您所做的更改,因为它们都引用磁盘上相同的数据块
当您删除其中一个硬链接时,实际上只是删除了引用该文件的一个文件系统条目。只有删除文件的所有硬链接(包括原始链接),文件才会被删除。删除1.txt后,2.txt仍然存在,并且引用的文件与原来的文件相同,只是现在只有一个文件系统条目引用该文件(即2.txt)。2.txt就是那个文件。这正是应该发生的行为。你确定你了解硬链接的工作原理吗?硬链接实际上只是文件系统中引用完全相同文件的多个条目。如果创建指向某个文件的硬链接并修改该文件的一个实例,则另一个文件将显示您所做的更改,因为它们都引用磁盘上相同的数据块
当您删除其中一个硬链接时,实际上只是删除了引用该文件的一个文件系统条目。只有删除文件的所有硬链接(包括原始链接),文件才会被删除。删除1.txt后,2.txt仍然存在,并且引用的文件与原来的文件相同,只是现在只有一个文件系统条目引用该文件(即2.txt)。2.txt就是那个文件。这是一个真正的硬链接。在UNIX中(我不熟悉Windows变体),文件只是磁盘上的一组数据(简单地说)。是目录条目本身为该文件命名
当您有两个目录项指向同一个基础文件时,删除其中一个目录项不会删除该文件,除非它是附加到该文件的最后一个目录项(并且该文件尚未被进程打开,但这是另一回事)。这是一个真正的硬链接。在UNIX中(我不熟悉Windows变体),文件只是磁盘上的一组数据(简单地说)。是目录条目本身为该文件命名 当有两个目录项指向同一个基础文件时,删除其中一个目录项不会删除该文件,除非它是附加到该文件的最后一个目录项(并且该文件尚未由进程打开,但这是另一回事) fsutil硬链接是如何创建的 命令与复制命令不同? 我如何才能创建真正的硬链接 在窗户下 创建硬链接文件后,请尝试编辑。您将发现更改反映在两个文件中 尝试创建一个非常大的文件(例如视频或磁盘图像)的硬链接。请注意,磁盘上的可用空间没有改变(或者,如果必须将额外的元数据写入磁盘以反映新的dir条目,则改变的字节数不会超过几个) fsutil硬链接是如何创建的 命令与复制命令不同? 我如何才能创建真正的硬链接 在窗户下 创建硬链接文件后,请尝试编辑。您将发现更改反映在两个文件中
尝试创建一个非常大的文件(例如视频或磁盘图像)的硬链接。请注意,磁盘上的可用空间没有改变(如果必须向磁盘写入额外的元数据以反映新的目录条目,则更改的字节数不会超过几个)。谢谢,我的想法不同。谢谢,我的想法不同。我想这取决于编辑器。有些人重命名旧文件,并使用原始名称创建新文件,从而断开链接。除非Windows硬链接与UNIX硬链接不同,这是完全可能的:-)事实上,我不知道ntfs有硬链接(我仍然不确定),ntfs从NT5开始就支持硬链接和称为连接的目录“符号链接”,从NT6开始支持实符号链接。真的。:)我认为,这取决于编辑器。有些人重命名旧文件,并使用原始名称创建新文件,从而断开链接。除非Windows硬链接与UNIX硬链接不同,这是完全可能的:-)事实上,我不知道ntfs有硬链接(我仍然不确定),ntfs从NT5开始就支持硬链接和称为连接的目录“符号链接”,从NT6开始支持实符号链接。真的。:)(其中,NT5更被称为Windows 2000,NT6更被称为Vista或Server 2008)值得一提的是,用于删除文件项的POSIX函数名为
unlink
。值得一提的是,用于删除文件项的POSIX函数名为unlink
。
fsutil hardlink create C:\2.txt C:\1.txt