Linux 中目录项和链接之间的区别?

Linux 中目录项和链接之间的区别?

链接和目录条目有什么区别。每个链接(符号链接和硬链接)都是目录条目吗?什么是目录条目,例如它不是链接?

答案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

相关内容