Linux 中的符号链接是什么?
符号链接也称为符号链接或软链接。它是目录或文件的绝对或相对路径的快捷方式。表示目录或文件的绝对或相对路径的快捷方式的名称是符号链接。符号链接是一个小内容文件,其文件名用作符号链接。考虑以下绝对链接:
第一个正斜杠是根目录; home是主目录,是根目录的子目录; john 是用户 John 的目录,它是主目录的子目录。其余目录是 John 创建的先前目录的子目录。
dir2 目录中可以有一个名为 Fourth 的名称,代表 dir4,作为绝对路径,
或相对路径,
现在,位于 dir2 中的第四个是指向 dir4 的符号链接。考虑相同的绝对链接,但有一个名为 effile 的文件;那是:
dir2 目录中可能有一个名为 FourthFile 的名称,代表 effile,作为绝对路径,
或相对路径,
现在,位于 dir2 中的 FourthFile 是 effile 的符号链接。
符号链接可以代表目录或文件。读者现在知道什么是 Linux/UNIX 操作系统中的符号链接。然而,这就是程序员应该知道的全部吗? – 不。程序员必须知道如何创建符号链接、使用符号链接、删除符号链接(即悬空链接)、与硬链接的比较以及任一类型链接的优缺点。所有这些都将在本文中讨论。
本文使用 Bash shell。
文章内容
简介 – 见上文
创建符号链接
使用符号链接
删除符号链接
悬空链接
硬链接基础知识
任一链接的一些优点和缺点
结论
创建符号链接
在创建符号链接之前,目录路径和/或文件应该已经存在。如果该路径尚不存在,则可以按如下方式从任何目录创建该路径:
如果缺少 -p 开关,则不会创建目录。符号链接可以单独表示目录路径,也可以表示带有文件的目录路径。如果该文件尚不存在,则可以从任何目录或主目录创建该文件,如下所示:
该文件(文本文件)为effile,该文件当前没有内容。
创建符号链接
创建目录符号链接的语法是:
创建文件符号链接的语法类似,即:
链接命令是ln。如果 -s 开关不存在,则会创建硬链接(见下文)。
创建目录符号链接
符号链接必须驻留在目录中。要创建到另一个目录的符号链接,程序员必须使用 cd 命令转到符号链接所在的位置,并在那里使用绝对路径或相对路径创建符号链接。符号链接,第四个驻留在 dir2 中,用于目录 dir4 的路径
可以在 dir2 中创建,如下所示:
相对链接的使用如下,仍然在dir2目录中:
创建文件符号链接
符号链接必须驻留在目录中。要创建到另一个目录中的文件的符号链接,程序员必须使用 cd 命令转到符号链接所在的位置,并在那里使用绝对路径或相对路径创建符号链接。符号链接,fourthFile 驻留在 dir2 中,对于 dir4 中的 effile 文件,路径的
可以在 dir2 中创建,如下所示:
相对链接的使用如下,仍然在dir2目录中:
是否可以从目录符号链接创建文件符号链接? - 是的。我把它留给读者作为练习。
使用符号链接
要访问目录 dir4,请使用符号链接,第四步,从任何目录,键入:
并按 Enter 键。请注意,第四个已替换了 dir3/dir4。提示将变成类似以下内容:
但是,这不是 dir4 的路径。路径实际上是:
要从任何目录使用符号链接 FourthFile 访问目录 dir4 中的文件 effile,请键入:
并按 Enter 键。请注意,fourthFile 已替换 dir3/dir4/effile。文件 (effile) 的内容应显示在终端上。请注意命令 cat 的使用。
删除符号链接
多个符号链接
一个目录或一个文件可以有多个符号链接。当创建目录或文件时,就会有一个到它的自然链接。符号链接只是用于访问目录或文件的一些替代且较短的代码。可以有多个符号链接来访问目录或文件。如果删除任何符号链接,其他符号链接或自然链接仍然有效。
要了解链接数量和原始路径(创建符号链接时使用的路径),请使用 cd 命令转到具有符号链接的目录并键入:
它将显示一些行。每个链接将占一行。像 lrwxr-xrwx 这样的文本后面将是符号链接的数量。该行的末尾将是原始路径。显示示例如下:
drwxr-xr-x 3 john john 4096 May 30 19:42 .
drwxr-xr-x 3 john john 4096 May 30 07:59 ..
drwxr-xr-x 3 john john 4096 May 30 07:59 dir3
lrwxrwxrwx 1 john john 32 May 30 19:42 fourth -> /home/forcha/dir1/dir2/dir3/dir4
lrwxrwxrwx 1 john john 39 May 30 19:38 fourthFile -> /home/forcha/dir1/dir2/dir3/dir4/effile
rm 命令
请记住,符号链接驻留在目录中。目录或文件符号链接的删除方式与删除文件的方式相同;毕竟,符号链接是一个文件。以下两个命令说明了这一点:
rm ~/dir1/dir2/fourthFile
请注意前面的符号链接文件路径。另外,请注意使用 ~ 来指代用户目录。
悬空链接
一个目录或一个文件可以有多个符号链接。如果使用自然链接移动或删除实际的目录或文件,则符号链接将成为悬空链接,因为它们不再有任何用途。悬空链接也称为断开链接、孤立链接或死链接。
硬链接基础知识
目录或文件的自然名称是硬链接。可以创建其他硬链接来指向同一目录或文件。如果使用自然链接删除(移除)原始目录或文件,则通过其他硬链接数据仍然存在。只有当所有硬链接都被删除后,数据才会被完全删除。
注意:仅建议对文件而不是目录使用硬链接。
任一链接的一些优点和缺点
优点
符号链接可以链接到文件,也可以链接到目录。
可以为不同的卷(文件系统)创建软链接(符号链接)。
硬链接不能以断开(悬空)链接的形式结束。
缺点
软链接(符号链接)有可能成为死(悬空)链接。
不建议为目录创建新的硬链接。
不能为不同卷(文件系统)创建硬链接。
结论
符号链接是目录或文件的快捷方式。快捷方式本身是一个小内容文件,必须驻留在目录中。新的硬链接是原始名称的替代名称,并指向同一文件。软链接和硬链接各有优缺点。要创建符号链接,请转到符号链接所在的目录。使用带 -s 开关的 ln 命令。要访问符号链接,请将符号链接放在目录路径的末尾,并可能在路径前面加上 ~。符号链接的另一个名称是符号链接或软链接。要了解目录或文件的符号链接数量,请转到符号链接所在的目录并使用命令“ls -la. ” 这也给出了原来的路径。
符号链接的删除方式与文件的删除方式相同。删除符号链接有多种方法。但是,可以轻松记住删除符号链接的命令是 rm。如有必要,请将符号链接放在目录路径的末尾。并且可能在路径之前加上 ~。悬挂链接是已被移动或删除(移除)的文件或目录的符号链接。这样的链接不再有任何用处。悬空链接的另一个名称是断开的链接、孤立的链接或死链接。