Windows 硬链接占用空间吗?

Windows 硬链接占用空间吗?

在我的电脑上我创建了一个硬链接

mklink /h git-link.exe git.exe
Hardlink created for git-link.exe <<===>> git.exe

现在它们都占据了空间

2012-04-17  12:14 AM         6,905,039 git-link.exe
2012-04-17  12:14 AM         6,905,039 git.exe

这有什么意义呢?为什么不直接复制一份呢?

答案1

创建硬链接时,您将创建两个指向磁盘上相同物理数据的单独文件系统条目。

当您执行目录时,它会显示文件系统条目指向的位置所存储的数据的大小。

因此,如果您为单个文件创建 100 个硬链接,它们都会报告相同的大小 - 它们报告的是存储的数据的大小。这并不意味着硬链接占用了这些空间 - 事实上它们不会。硬链接占用的空间非常小。

答案2

文档微软提供的这个功能可能会有所帮助。(虽然是针对 Windows Server 2003 的,但我认为对于所有使用 NTFS 文件系统的系统来说都应该是一样的。)

对于硬链接:

Windows 资源管理器和命令提示符显示所有链接文件的大小相同,即使它们都共享相同的数据和实际上没有使用那么多磁盘空间

Windows 资源管理器和 dir /s 命令遵循重新解析点,计算目标卷上的所有文件和文件夹,然后将它们包含在主机卷的统计信息中。这可能会误导您相信主机卷上使用的空间比实际使用的空间要多。

您可以使用 chkdsk 输出、NTBackup GUI 或备份日志以及查看磁盘配额来确定卷上的磁盘空间使用情况。但是,Windows 资源管理器和 dir 命令在用于此目的时有一些限制和缺点。

答案3

事实是,使用目录硬链接(连接)是没有意义的,不是吗?

考虑到浏览器处理它们的方式,就是这样。

我的观点是,举个例子:不能指望减轻磁盘“C”的物理负载(将应用程序数据文件夹或程序文件移动到另一个磁盘“E”,并使用硬链接重新填充“C”,从而使应用程序保持正常运行)。 Windows 资源管理器仍会将这些链接“大小”累积到“C”上可能已消耗的空间,一旦磁盘“C”缺少可用空间,就会向用户发出警告,即使它与硬链接“虚拟”空间消耗有关。

那么,Windows 7 的硬链接呢?令人大失所望。

相关内容