当我们在 UNIX 中创建目录时,它有 2 个硬链接:.
和..
.一份为其自身,另一份为其父目录。
当我读取.
目录的增加计数器和..
父目录的硬链接计数器的增加时。
所以只.
计算在目录中,但是当我这样做时仍然有2个硬链接ls -l
。第二个是什么?有人可以告诉我目录中的硬链接是如何计算的吗?想象一下,我们有这样的层次结构:
parent - 4 hard links
.
. child_1 - 2 hard links
.
. child_2 - 2 hard links
答案1
child1
由于child1
父项中的条目和.
中的条目,有两个链接child1
。
请注意,parent
在所描述的星座中通常有四链接,而不是 3,因为它是其他父级的子级(除非它是根目录):
$ find parent | xargs stat -c "%h %n" # %h=link count, %n=name
4 parent
2 parent/child2
2 parent/child1
答案2
好的。这是我问我的讲师的:
.
目录本身的计数加 1 。..
父目录的计数加 1 。新的子目录有 2 个硬链接,因为目录的名称也是链接到该目录的硬链接。