Linux 中的符号链接是什么?Linux 中的符号链接是什么?Linux 中的符号链接是什么?Linux 中的符号链接是什么?
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

Linux 中的符号链接是什么?

符号链接也称为符号链接或软链接。它是目录或文件的绝对或相对路径的快捷方式。表示目录或文件的绝对或相对路径的快捷方式的名称是符号链接。符号链接是一个小内容文件,其文件名用作符号链接。考虑以下绝对链接:

/home/john/dir1/dir2/dir3/dir4

第一个正斜杠是根目录; home是主目录,是根目录的子目录; john 是用户 John 的目录,它是主目录的子目录。其余目录是 John 创建的先前目录的子目录。

dir2 目录中可以有一个名为 Fourth 的名称,代表 dir4,作为绝对路径,

/home/john/dir1/dir2/dir3/dir4

或相对路径,

dir3/dir4

现在,位于 dir2 中的第四个是指向 dir4 的符号链接。考虑相同的绝对链接,但有一个名为 effile 的文件;那是:

/home/john/dir1/dir2/dir3/dir4/effile

dir2 目录中可能有一个名为 FourthFile 的名称,代表 effile,作为绝对路径,

/home/john/dir1/dir2/dir3/dir4/effile

或相对路径,

dir3/dir4/effile

现在,位于 dir2 中的 FourthFile 是 effile 的符号链接。

符号链接可以代表目录或文件。读者现在知道什么是 Linux/UNIX 操作系统中的符号链接。然而,这就是程序员应该知道的全部吗? – 不。程序员必须知道如何创建符号链接、使用符号链接、删除符号链接(即悬空链接)、与硬链接的比较以及任一类型链接的优缺点。所有这些都将在本文中讨论。

本文使用 Bash shell。

文章内容

  • 简介 – 见上文

  • 创建符号链接

  • 使用符号链接

  • 删除符号链接

  • 悬空链接

  • 硬链接基础知识

  • 任一链接的一些优点和缺点

  • 结论

创建符号链接

在创建符号链接之前,目录路径和/或文件应该已经存在。如果该路径尚不存在,则可以按如下方式从任何目录创建该路径:

mkdir -p /home/john/dir1/dir2/dir3/dir4

如果缺少 -p 开关,则不会创建目录。符号链接可以单独表示目录路径,也可以表示带有文件的目录路径。如果该文件尚不存在,则可以从任何目录或主目录创建该文件,如下所示:

touch /home/john/dir1/dir2/dir3/dir4/effile

该文件(文本文件)为effile,该文件当前没有内容。

创建符号链接

创建目录符号链接的语法是:

ln -s [original path] [new link name]

创建文件符号链接的语法类似,即:

ln -s [original path/filename] [new link filename]

链接命令是ln。如果 -s 开关不存在,则会创建硬链接(见下文)。

创建目录符号链接

符号链接必须驻留在目录中。要创建到另一个目录的符号链接,程序员必须使用 cd 命令转到符号链接所在的位置,并在那里使用绝对路径或相对路径创建符号链接。符号链接,第四个驻留在 dir2 中,用于目录 dir4 的路径

/home/john/dir1/dir2/dir3/dir4

可以在 dir2 中创建,如下所示:

ln -s /home/john/dir1/dir2/dir3/dir4 fourth

相对链接的使用如下,仍然在dir2目录中:

ln -s dir3/dir4 fourth

创建文件符号链接

符号链接必须驻留在目录中。要创建到另一个目录中的文件的符号链接,程序员必须使用 cd 命令转到符号链接所在的位置,并在那里使用绝对路径或相对路径创建符号链接。符号链接,fourthFile 驻留在 dir2 中,对于 dir4 中的 effile 文件,路径的

/home/john/dir1/dir2/dir3/dir4

可以在 dir2 中创建,如下所示:

ln -s /home/john/dir1/dir2/dir3/dir4/effile fourthFile

相对链接的使用如下,仍然在dir2目录中:

ln -s dir3/dir4/effile fourthFile

是否可以从目录符号链接创建文件符号链接? - 是的。我把它留给读者作为练习。

使用符号链接

要访问目录 dir4,请使用符号链接,第四步,从任何目录,键入:

cd ~/dir1/dir2/fourth

并按 Enter 键。请注意,第四个已替换了 dir3/dir4。提示将变成类似以下内容:

john@computerName:~/dir1/dir2/fourth$

但是,这不是 dir4 的路径。路径实际上是:

/home/john/dir1/dir2/dir3/dir4/

要从任何目录使用符号链接 FourthFile 访问目录 dir4 中的文件 effile,请键入:

cat ~/dir1/dir2/fourthFile

并按 Enter 键。请注意,fourthFile 已替换 dir3/dir4/effile。文件 (effile) 的内容应显示在终端上。请注意命令 cat 的使用。

删除符号链接

多个符号链接

一个目录或一个文件可以有多个符号链接。当创建目录或文件时,就会有一个到它的自然链接。符号链接只是用于访问目录或文件的一些替代且较短的代码。可以有多个符号链接来访问目录或文件。如果删除任何符号链接,其他符号链接或自然链接仍然有效。

要了解链接数量和原始路径(创建符号链接时使用的路径),请使用 cd 命令转到具有符号链接的目录并键入:

ls -la

它将显示一些行。每个链接将占一行。像 lrwxr-xrwx 这样的文本后面将是符号链接的数量。该行的末尾将是原始路径。显示示例如下:

total 12

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/fourth

rm ~/dir1/dir2/fourthFile

请注意前面的符号链接文件路径。另外,请注意使用 ~ 来指代用户目录。

悬空链接

一个目录或一个文件可以有多个符号链接。如果使用自然链接移动或删除实际的目录或文件,则符号链接将成为悬空链接,因为它们不再有任何用途。悬空链接也称为断开链接、孤立链接或死链接。

硬链接基础知识

目录或文件的自然名称是硬链接。可以创建其他硬链接来指向同一目录或文件。如果使用自然链接删除(移除)原始目录或文件,则通过其他硬链接数据仍然存在。只有当所有硬链接都被删除后,数据才会被完全删除。

注意:仅建议对文件而不是目录使用硬链接。

任一链接的一些优点和缺点

优点

  • 符号链接可以链接到文件,也可以链接到目录。

  • 可以为不同的卷(文件系统)创建软链接(符号链接)。

  • 硬链接不能以断开(悬空)链接的形式结束。

缺点

  • 软链接(符号链接)有可能成为死(悬空)链接。

  • 不建议为目录创建新的硬链接。

  • 不能为不同卷(文件系统)创建硬链接。

结论

符号链接是目录或文件的快捷方式。快捷方式本身是一个小内容文件,必须驻留在目录中。新的硬链接是原始名称的替代名称,并指向同一文件。软链接和硬链接各有优缺点。要创建符号链接,请转到符号链接所在的目录。使用带 -s 开关的 ln 命令。要访问符号链接,请将符号链接放在目录路径的末尾,并可能在路径前面加上 ~。符号链接的另一个名称是符号链接或软链接。要了解目录或文件的符号链接数量,请转到符号链接所在的目录并使用命令“ls -la. ” 这也给出了原来的路径。

符号链接的删除方式与文件的删除方式相同。删除符号链接有多种方法。但是,可以轻松记住删除符号链接的命令是 rm。如有必要,请将符号链接放在目录路径的末尾。并且可能在路径之前加上 ~。悬挂链接是已被移动或删除(移除)的文件或目录的符号链接。这样的链接不再有任何用处。悬空链接的另一个名称是断开的链接、孤立的链接或死链接。

©2015-2025 艾丽卡 support@alaica.com