硬链接真的占用这么多磁盘空间吗?

硬链接真的占用这么多磁盘空间吗?

我发现我需要对无法看到别名/符号链接的特定程序(Ableton Live)使用硬链接,这当然是我组织所有工作文件的方式。但创建硬链接会创建看似与原始文件重复的内容。

它们实际上占用的空间与原来的一样多吗?或者文件系统(在本例中为 OSX)仅显示磁盘上实际数据的大小,而在两个地方引用它的事实实际上并没有使数据量增加一倍?

答案1

你说的第二件事完全正确。文件内容仅在磁盘上存在一次。硬链接是一个额外的引用,它占用的空间非常小 - 目录项的大小,即文件名的长度加上几个字节。

我不知道这是否适用于 OSX,但是在我方便的 GNU coreutils 版本中,du它知道硬链接,因此您可以使用它来获得一组文件总大小的准确报告。如果它找到一个文件的多个链接,它只会将其添加到总数中一次。ls -l另一方面,做了错误的事情,并将其在目录中看到的所有内容添加到其total行中。

$ ls -sl
total 296
296 -rw-r--r-- 1 user group 300324 Feb 17 19:08 f1
$ du
296     .
$ ln f1 f2
$ ls -sl
total 592
296 -rw-r--r-- 2 user group 300324 Feb 17 19:08 f1
296 -rw-r--r-- 2 user group 300324 Feb 17 19:08 f2
$ du
296     .
$ cp f1 f3
$ ls -sl
total 888
296 -rw-r--r-- 2 user group 300324 Feb 17 19:08 f1
296 -rw-r--r-- 2 user group 300324 Feb 17 19:08 f2
296 -rw-r--r-- 1 user group 300324 Feb 17 19:08 f3
$ du
592     .
$

最终的演示是创建一个巨大的文件,超过磁盘大小的一半。然后看看您可以创建多少个硬链接。应该不少吧。

相关内容