![Linux 中目录项和链接之间的区别?](https://linux22.com/image/198003/Linux%20%E4%B8%AD%E7%9B%AE%E5%BD%95%E9%A1%B9%E5%92%8C%E9%93%BE%E6%8E%A5%E4%B9%8B%E9%97%B4%E7%9A%84%E5%8C%BA%E5%88%AB%EF%BC%9F.png)
链接和目录条目有什么区别。每个链接(符号链接和硬链接)都是目录条目吗?什么是目录条目,例如它不是链接?
答案1
基本上,在类似 POSIX 的文件系统上,所有具有文件系统“地址”(小路) 是一个目录条目。文件、其他目录、符号链接、字符设备文件。
硬链接只是一个普通文件,恰好出现在两个不同的路径下。
答案2
在传统的 Linux 文件系统上,每个文件都是一个 inode。对于实际文件,索引节点通常指向数据块。
指向 inode 的目录项。多个这样的目录项可以指向同一个inode,并且无法区分它们。当有多个时,它们被称为硬链接。 inode 有一个引用计数器,指示 inode 有多少个硬链接(并通过 显示ls -l
)。
符号链接是一种特殊的索引节点,它不指向数据块,而是包含另一个文件名,因此它不是链接到索引节点,而是按名称链接到另一个目录条目(可能存在也可能不存在)。
答案3
文件链接和目录条目是同一件事。这是一个视角问题:文件的链接是目录中的一个条目。从目录的角度来看,它称为目录条目;从文件的角度看,它称为链接。
请注意,这里的“链接”是难的关联。符号链接是一个不同的概念。
这种等价仅适用于具有“链接”概念的文件系统,即目录条目和文件之间存在一定程度的间接性。更具体地,这适用于文件可以具有多个链接的文件系统,即支持硬链接的文件系统。在文件位于给定目录中的文件系统上,“链接”的概念不适用(而目录条目的概念适用于任何具有目录的文件系统)。
答案4
我有这个问题我有 /usr/local/bin->/LinuxStuff/bin 此链接是用以下命令创建的:
rmdir /usr/local/bin 后跟 ln -s /usr/local/bin /LinuxStuff/bin
但我有一个实用程序可以创建 /etc/fstab 条目,如下所示。 /LinuxStuff/bin /usr/local/bin 无绑定,默认 0 0
当程序遇到该 fstab 条目,或者 Linux 内核遇到 ln -s 链接 ==>>> 时,结果是崩溃段错误。
如何区分 ... /bin 和具有链接或已应用 ln -s 或 bind 的 ... /bin