我正在学习linux并且是bash的语法, 当我了解硬链接和软链接时,你不能为目录创建一个硬链接,因为它会产生循环。
但是。和...是硬链接,为什么会这样?
我的意思是,为什么。和..可以是硬链接而我无法在其他目录上创建hark链接,为什么它们不仅仅是软链接?
为什么。和..打破没有硬链接到目录的角色?
有人可以解释将它们作为硬链接而不是软链接的好处吗?
感谢。
答案 0 :(得分:0)
如何。和..可以是硬链接,是不是打破了文件系统?
POSIX规范要求,并且Unix传统有.
和..
是几十年来的硬链接(如果它们不存在,文件系统可能会被破坏或消失或被破坏而不可能修理)。
阅读hard links上的wikipage以了解它们。
请记住(在Unix和Linux上)文件没有必要的名称。在Unix和Linux上,文件是inode(另请参阅inode(7))并且可以有一个(这是通常的情况),零个或多个名称。目录是名称和inode之间的映射,在概念上要求同时具有.
和..
条目。另请参阅this和that相关问题的答案。
另请阅读Operating Systems: Three Easy Pieces,特别是关于files,directories,file systems的章节。另请阅读VFS。
目录上通常不允许使用硬链接(并且link(2)将失败)以促进内核中的reference counting方案并禁止文件树中的circular references。
.
和..
条目是在mkdir(2)时创建的。 ..
条目可由rename(2)更改(概念由mount(2)更改)。 rmdir(2)系统调用要求该目录为空,即仅包含 这两个.
& ..
条目。另请参阅path_resolution(7)(和this)。