本页关于索引节点对于掌握文件系统的表面概念有特殊的帮助。在同一页面上,作者插入了以下代码片段,证明每个文件或目录至少有 2 个名称(和硬链接):
/tmp/junk$ ls -id ..
327681 ..
/tmp/junk$ cd ..
/tmp$ ls -id .
327681 .
我们可以看到/tmp
有3个硬链接:
- 据推测,文件名“tmp”的索引节点
- 名称“..”的相同索引节点
- 名称“.”的相同索引节点
/tmp
我的问题:如果给定子目录,目录中的“垃圾”文件是否也可以有 3 个名称(和硬链接)?例如,/tmp/junk/paper_balls
。
我的假设:如果“垃圾”文件成为父文件,则可以使用..
但相对地调用它,这意味着当前工作目录(从中..
键入)必须位于目录路径内/tmp/
。我的问题的答案可能太先进了。
答案1
硬链接的初始数量为 1文件和 2 为目录(第一个链接是其在父文件夹中的名称,第二个硬链接是.
)。每次在目录中创建子目录时,目录的链接计数就会增加一(由于..
在每个子目录中)。
可以使用 轻松查看此计数ls -l
。这是第二个值。看一看:
~/x$ ls -la
total 16
drwxr-xr-x 2 tomasz tomasz 4096 Sep 24 00:08 .
drwxr-xr-x 54 tomasz tomasz 4096 Sep 24 00:11 ..
-rw-r--r-- 1 tomasz tomasz 19 Sep 23 18:45 1
-rw-r--r-- 1 tomasz tomasz 19 Sep 23 18:45 2
~/x$ mkdir d
~/x$ ls -la
total 20
drwxr-xr-x 3 tomasz tomasz 4096 Sep 24 00:11 .
drwxr-xr-x 54 tomasz tomasz 4096 Sep 24 00:11 ..
-rw-r--r-- 1 tomasz tomasz 19 Sep 23 18:45 1
-rw-r--r-- 1 tomasz tomasz 19 Sep 23 18:45 2
drwxr-xr-x 2 tomasz tomasz 4096 Sep 24 00:11 d
~/x$ mkdir d/dd
~/x$ ls -la
total 20
drwxr-xr-x 3 tomasz tomasz 4096 Sep 24 00:11 .
drwxr-xr-x 54 tomasz tomasz 4096 Sep 24 00:11 ..
-rw-r--r-- 1 tomasz tomasz 19 Sep 23 18:45 1
-rw-r--r-- 1 tomasz tomasz 19 Sep 23 18:45 2
drwxr-xr-x 3 tomasz tomasz 4096 Sep 24 00:11 d
在其中创建后,第二个值d
从 2 增加到 3 。d/dd
请参阅下面 mosvy 的评论以获得更广泛的视野。