硬链接和软链接如何在后台工作?

Rah*_*til 0 linux hard-link files

我正在寻找对以下内容的解释:

  • 当我们创建软链接和硬链接时,Linux 中会发生什么
  • 它们如何访问
  • 为什么符号链接总是显示 777 权限

von*_*and 5

在 Unix 中,文件(或任何文件系统对象)由 inode(间接节点)表示。有关文件的所有信息(大小、时间戳、权限)都存储在 inode 中,目录本质上只是将名称映射到 inode 的文件。一个 inode 可以被多次提及,在同一个目录中不同名称或在不同目录中。每个将是完全相同的文件,这里没有主要和次要文件。inode 中的数据之一是链接数,删除文件只会从目录中删除名称并减少链接数。当计数达到 0 时,该文件将不再被找到,也可以被销毁。该文件的每个提及项都称为硬链接

符号链接本质上是一个包含文件名的特殊文件。只要遵循符号链接,就会读取包含的文件名,然后正常查找该文件。请注意,符号链接的目标很可能已被删除,无法知道此类链接可能存在的位置来纠正它们。结果是链接断开。

符号链接上的权限完全无关,相关的是目标路径上的权限。通常符号链接的权限为 0777(八进制)。

请注意,有一些限制:硬链接只能添加到同一文件系统内的文件中(inode 仅在本地已知),并且不能引用目录(除了...条目)。最后是避免循环,这将需要昂贵的垃圾收集来确定是否可以删除某些内容。

符号链接可以跨越文件系统,并且可以指向目录。但是它们受所指向路径的权限限制,并且可能会被破坏。

  • 只是想补充一点,符号链接的一个优点是它们指向的目标可以更改(不仅仅是删除)而无需更改链接。有利于发展。 (2认同)