我已经看到很多解释为什么基于 Unix 的操作系统中空目录的链接数是 2 而不是 1。他们都说这是因为 '.' 目录,每个目录都指向它自己。我明白为什么会有一些“。”的概念。对于指定相对路径很有用,但是在文件系统级别实现它有什么好处?为什么不让 shell 或采用路径的系统调用知道如何解释它呢?
'..' 是一个真正的链接对我来说更有意义——文件系统需要存储一个指向父目录的指针才能导航到它。但我不明白为什么“。” 成为一个真正的链接是必要的。它似乎也导致了实现中的一个丑陋的特殊情况——你会认为你只能释放链接数小于 1 的 inode 使用的空间,但如果它们是目录,你实际上需要检查一个链接数小于 2。为什么不一致?
假设我只是创建目录 newDirectory 然后我执行 ls -ld 命令。我看到硬链接的数量是2。从一开始,硬链接2到底是什么?当前目录中的子目录数是否等于硬链接数 - 2?
我想知道这两者之间的区别是什么:
~/somedirectory/file.txt
Run Code Online (Sandbox Code Playgroud)
和
~/.somedirectory/file.txt
Run Code Online (Sandbox Code Playgroud)
在谷歌上问这个真的很困难,因为我不知道如何解释.
当我什至不知道该怎么称呼它时。但是有人可以描述包含点和排除它之间的区别吗?
看完问题当你输入“ls -a”时,“.”的意义是什么?和 ”..”?,我有一个类似的。
为什么要显示.
?我的意思是,是否有任何目录cd .
不起作用?用户每次看到这条线有什么帮助?
你好呀!
目前,我正在学习 shell 编程,在那里我刚刚学习了符号链接、硬链接、文件、目录相关主题。我试图理解——
好的解释对我很有帮助。
提前致谢。
最好的问候-
Nazmul
directory ×2
filesystems ×2
cd-command ×1
dot-files ×1
files ×1
hard-link ×1
linux ×1
ls ×1
shell ×1