为什么 。和 .. 是目录的硬链接,而在 *nix 系统中目录不允许硬链接吗?

为什么 。和 .. 是目录的硬链接,而在 *nix 系统中目录不允许硬链接吗?

我知道硬链接和符号链接是如何工作的,并且我知道为什么硬链接不能用于目录,但在这种情况下,这是某种例外吗?

例如我这样做:

ls -al Documents

total 8
drwxr-xr-x  2 piotr piotr 4096 cze 28 11:19 .
drwxrwx--- 17 piotr piotr 4096 lip  2 16:41 ..

是一个硬链接文件本身和..是到我的硬链接主目录所以嘿,这是非法的

答案1

正如有人在对该问题的评论中所说,仅仅因为不允许目录的硬链接(即通过命令ln),并不意味着它们是不可能的。超级用户实际上可以使用ln命令的“-d”或“-F”选项来强制创建到目录的硬链接(尽管手册页说它“可能”由于文件系统限制而失败 - 不确定是什么就是这样,我不会在我自己的系统上尝试看看......)。

不允许使用目录的硬链接,因为它们可能会为尝试遍历目录结构的程序创建循环。在任何目录中,...分别是到该目录及其父目录的硬链接 - 这些是“众所周知的”特殊情况,任何试图遍历文件系统的东西都知道要解释这一点。但如果你坚持的话,从技术上来说,创建一个目录的硬链接当然是可能的——只是不建议这样做。

相关内容