我的输出ls -l
是:
drwxr-xr-x 2 dario dario 4096 Sep 14 13:15 d1
-rw-r--r-- 1 dario dario 0 Sep 14 13:18 file1
为什么是files = 1
?
d1 是空的。为什么要显示2
?
答案1
1
的数字file1
表示该文件没有其他硬链接。如果您在当前目录中unlink
单击rm
此文件file1
,则其内容将被标记为磁盘上的可用空间并最终被覆盖。如果有两个其他硬链接,则总数将是3
,这就是您将看到的内容。
2
目录的数量d1
有些类似。在 Linux 中,您不能自由地创建指向目录的硬链接,但(几乎)每个目录至少有两个:
- 其父目录中的“名称”(
d1
在本例中), .
在自身;- 此外
..
在其每个子目录中(在本例中没有)。
..
请注意d1
没有为该数字做出贡献。它为 的父目录的链接计数做出贡献d1
。
例外情况是/
。它没有父目录,但是.
和 ..
参考,/
因此/
您仍然有两个链接加上每个子目录一个链接。
这是它在ext
家庭文件系统中的工作方式。其他文件系统的行为可能有所不同。例如,btrfs
通常显示1
目录。
答案2
每个目录至少包含两个条目。它们是:
.
(当前目录)以及,
..
(父目录)。
file1
有一个指向它的链接