硬链接与符号链接(Hard Link vs Symbolic Link)
两者对于 Linux 操作系统的异同、优缺点。
什么是链接?
在最一般的意义上,链接是两个对象之间的连接。更具体地说是在计算方面;根据牛津定义,链接是与代码或指令的连接,它将程序的一部分或列表中的元素连接到另一部分。在这种情况下,它是来自一个位置的文件或目录的连接,并且能够从另一个位置访问它。为此,必须从原始文件创建链接文件 本博客的其余部分是关于通过硬链接或符号(软)链接创建链接文件的两种方法的比较。
共同点和不同点:
首先,它们都是从另一个位置引用原始文件的方法,并且它们实际上都访问了原始文件,实现了链接的目的。此外,如果链接文件被移动、重命名或删除,原始文件也不会发生任何变化。
主要区别在于,一个指向文件在硬盘中的物理位置,另一个是快捷方式,即文件当前目录路径的副本。正如将要解释的那样,这将释放出两者的主要优点和缺点。
硬链接
什么是硬链接(Hard Link)
第一种方法是使用硬链接。这种建立连接的方式是通过所谓的索引节点,它本质上是对文件物理位置的引用。这意味着链接文件与原始文件具有相同的 indode 值,使其成为一种“原始文件的移动副本”。
硬链接的属性是链接文件与原始文件具有相同的大小,因为它是对原始文件相同位置的引用,因此不仅是对它的引用,而且具有相同的属性。
由于它是对文件物理位置的引用,而不仅仅是对其当前位置的引用,因此即使原始文件被移动、重命名或删除,该链接仍将可用并且不会受到影响。换句话说,如果发生任何这种情况,链接文件仍将访问原始文件中的信息。链接文件仍然有效。
Hard Link 的主要缺点是不能为目录创建,也不能为不同文件系统上的文件创建。
命令:
$ ln [original filename] [link name]
$ ln [原始文件名] [链接名]
什么是符号链接(Symbolic Links)
符号链接或软链接是一个字符串,它是原始文件的路径名,换句话说,就是我们在 Windows 操作系统中所知道的快捷方式。这种链接引用原始文件的虚拟或路径位置,而不是物理位置。
特性
软(符号)链接中的文件名实质上是原始文件的路径名,因此该链接的大小只是文件链接名的长度。它不是原始文件的大小。
优点
正如我们刚刚看到的,主要优点是它不会占用太多空间,因为它的尺寸会更小。
另一个优点是它可以为目录和不同的文件系统创建。
缺点
一些真正的大缺点是,如果文件被重命名、移动或删除,链接文件将变得毫无用处,成为一个挂起的链接。
$ ln -s [original filename] [link name]
$ ln -s [原始文件名] [链接名]
reference
@misc{BibEntry2023Jun,
title = {{Hard Link vs Symbolic Link {
∣
\vert
∣} LinkedIn — xn–jhqx7l99oca507xzode90dea {
∣
\vert
∣}xn–dj1ay55b}},
year = {2023},
month = jun,
note = {[Online; accessed 3. Jun. 2023]},
url = {https://www.linkedin.com/pulse/hard-link-vs-symbolic-mateo-garcia}
}