基于UNIX/Linux系统中的链接用于在文件和磁盘上的实际数据之间建立连接。 就像编程语言中的指针概念一样,它更像是指向另一个文件或目录的指针或引用。
假设文件的名称很长,由于某些原因,无法更改。 在UNIX中,为了便于使用,我们可以使用较短的名称引用带有引用的文件。 在UNIX中对同一文件的这些引用称为链接。 简而言之,链接是一种引用文件内容的方法。
在UNIX中使用两种类型的链接:软链接和硬链接。 除了它们的行为方式,两者基本上都用于相同的目的。
什么是软链接?
软链接或符号粉红色是将文件名与路径名相关联的小型指针文件。 它不过是原始文件的快捷方式,类似于Windows操作系统中的快捷方式选项。 它只是作为对另一个文件或目录的引用,而没有文件的实际内容,因此您可以轻松地删除软链接,甚至不影响原始文件或目录的内容。
简而言之,软链接通常是原始文件的别名,当通过软链接主题中指定的路径名进行访问时,软链接会重定向到目标文件或目录。 此外,您可以使用软链接来链接整个文件系统。
什么是硬链接?
硬链接只是原始文件的副本,它用作对同一文件的引用或指针,因此即使将原始文件从其原始位置删除或移动也可以轻松访问。 与软链接不同,对硬链接文件所做的更改将影响其他文件,并且即使您从系统中删除源文件,硬链接仍然有效。
硬链接共享相同的Inode值,与软链接不同,硬链接指向文件位置而不是目录。 它通常用于文件系统中,该系统允许对同一文件进行的硬链接以外的其他功能。 简而言之,硬链接只是基于UNIX的系统上现有文件的附加名称。
UNIX中的软链接和硬链接的区别
1. 含义
软链接(也称为符号链接)是在文件之间建立链接的特殊指针。与Windows操作系统中提供的快捷功能非常相似。软链接只是文件的快捷方式,用作对另一个文件或目录的引用。硬链接与软链接非常不同。它用作原始文件的引用或指针,这意味着它是指向原始文件的精确镜像副本。简而言之,硬链接只是现有文件的附加名称。
2. 行为
由于软链接文件包含指向原始文件的单独的Inode值,因此,如果从系统中删除了原始文件或目录,则该链接将变得不可访问。它只是文件的快捷方式,因此您可以删除软链接,而不会实际影响原始文件或目录。与软链接不同,硬链接与指向相同文件位置的原始共享相同的Inode值。硬链接比软链接更灵活,因为即使从系统中删除了原始文件,您也可以访问文件。
3. 命令
要在基于UNIX的系统中的文件之间建立链接,需要使用“ln”命令。软链接指的是符号路径,该路径指示原始文件的位置,而不指示内容的位置。使用“ln -s”命令创建一个软链接。
ln -s <source_file> <myfile>
在这里,将用要为其创建软链接的原始文件替换“source_file”,并用该软链接或符号链接的名称替换”myfile”,然后命令-s
中创建到文件的软链接名称,都在当前目录中。
另一方面,“in”命令用于创建硬链接。 in
命令是标准的UNIX命令,用于创建硬链接以指向具有相同名称的多个文件。
ln <source> <linkname>
4. 结构体
与可用于链接文件和目录的软链接不同,硬链接只能链接文件,而不能链接目录。差异使软链接具有硬链接所没有的某些品质,例如跨文件系统链接的能力。创建和删除符号链接不会影响原始文件。另一方面,硬链接不能用于链接文件系统外部的文件。硬链接与实际文件内容共享相同的Inode值,因此删除任何链接不会影响其他链接,并且仍会显示文件内容。
总结
简而言之,软链接和硬链接都允许多个文件名在其他位置引用同一文件,但是区别在于,从系统中删除源链接时,它们的行为方式不同。 硬链接比软链接占用的空间少,但是对硬链接所做的任何更改最终都会反映在原始文件中,而对软链接所做的任何更改都不会对原始文件产生任何影响。 软链接就像Windows操作系统的快捷功能一样,用作引用原始文件或目录的别名,而硬链接就像是链接同一文件系统中两个文件的原始文件的副本。
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果。
转载请注明:文章转载自 有区别网 [http://www.vsdiffer.com]
本文标题:Linux软链接和硬链接
本文链接:https://www.vsdiffer.com/vs/soft-link-vs-hard-link-in-unix-in-os.html
免责声明:以上内容仅是站长个人看法、理解、学习笔记、总结和研究收藏。不保证其正确性,因使用而带来的风险与本站无关!如本网站内容冒犯了您的权益,请联系站长,邮箱: ,我们核实并会尽快处理。