硬链接和软链接之间的区别

作者: Laura McKinney
创建日期: 1 四月 2021
更新日期: 1 可能 2024
Anonim
09 硬链接和软链接
视频: 09 硬链接和软链接

内容


Unix中的链接本质上是与文件和目录关联的指针。硬链接和软链接之间的主要区别在于,硬链接是对文件的直接引用,而软链接是按名称的引用,这意味着它按文件名指向文件。

硬链接链接同一文件系统中的文件和目录,但软链接可以遍历文件系统边界。

在了解链接之前,我们应该先了解 索引节点索引节点是一种数据结构,由有关文件的元数据组成,例如文件创建日期,文件授权,文件所有者等。

  1. 比较表
  2. 定义
  3. 关键差异
  4. 结论

比较表

比较依据硬链接
软链接
基本的可以通过称为硬链接的许多不同名称访问文件。可以通过指向该文件的不同引用来访问文件,这称为软链接。
链接验证,当原始文件被删除时仍然有效,可以访问文件。
无效
用于创建的命令ln
ln -s
索引号相同
不同
可以链接 到自己的分区。到任何其他联网的文件系统。
内存消耗更多
相对路径不适用允许的

硬链接的定义

硬链接 直接在同一文件系统中链接两个文件,并且为了识别它使用文件的inode编号。硬链接无法在目录上实现(因为它们指向inode)。什么时候 ”ln”命令用于生成硬链接,它在命令行上创建另一个文件,该文件可用于引用原始文件。原始文件和生成的文件都具有相同的索引节点和内容。因此他们将具有相同的权限和相同的所有者。


原始文件的删除不会影响硬链接文件,并且将保留硬链接文件。索引节点拥有一个计数器,用于计算与其自身的硬链接数。当计数器指示0值时,则清空索引节点。每当您对硬链接进行任何更改时,它都会模仿原始文件。

软链接的定义

软链接 通常是原始文件的替代路径(或别名);这些也称为 符号链接。它包括链接的“目标文件”的名称,标志,指示它是软链接。当访问文件时,软链接通过写在软链接主题中的路径将其重定向到目标文件。

对于Windows OS,其中的软链接充当快捷键,这些功能非常方便。软链接的创建和删除不会影响原始文件。如果删除了目标文件,则软链接会悬空,这意味着它无处指向,并且在访问目标文件时会产生错误。与硬链接不同,软链接不使用索引节点号。绝对路径或相对路径可以是符号链接的一部分。

  1. 硬链接是原始文件的附加名称,它引用inode来访问目标文件。相比之下,软链接不同于原始文件,并且是原始文件的别名,但不使用inode。
  2. 删除原始文件后,软链接无效,即使删除了目标文件,硬链接也有效。
  3. 在Linux中,用于创建硬链接的命令是“ln”。与之相反,用于软链接的命令是“ln -s“.
  4. 硬链接具有与软链接不同的相同inode编号,其中目标文件及其软链接具有不同的inode编号。
  5. 硬链接仅限于其自己的分区,但是软链接可以覆盖不同的文件系统。
  6. 在某些情况下,硬链接的性能优于软链接。
  7. 相对路径和绝对路径都允许在软链接中使用。相反,硬链接中不允许相对路径。

结论

硬链接不需要额外的空间,并且可以更快地解决问题,但是对硬链接应用的更改会反映在原始文件中。另一方面,“软链接”需要额外的空间,但是“软链接”中的任何更改都不会影响原始文件。与硬链接不同,允许软链接到目录。