如何在 Linux 中使用 ln 命令创建软链接和硬链接
链接是 Linux 文件系统的重要组成部分之一。在本教程中了解如何使用 ln 命令创建链接。
链接是对另一个文件的引用。链接为同一文件提供多个名称,并允许它们同时存在于两个或多个位置。
有两种类型的链接:
软链接或符号链接:这只是原始文件的快捷方式。
硬链接:指向原始文件的内存位置。
下图显示了两种类型的链接如何工作:
硬链接和软链接都是使用 ln 命令创建的。
在本教程中,我将向您展示如何使用 ln 命令在 Linux 中创建各种类型的链接。
ln 命令示例
ln 命令的语法很简单:
ln [option] target_file link_name
让我向您展示一些在 Linux 中使用 ln 命令创建链接的示例。
1. 创建文件的硬链接
要创建到文件的硬链接,可以使用不带任何选项的 ln 命令,如下所示:
ln target_file link_name
2. 创建文件的软链接
要创建文件的符号链接,请使用选项 -s
以及目标文件名和链接名称
ln -s target_file link_name
大多数 Linux 终端都会以不同的颜色显示软链接及其指向的目的地。
您还会注意到,长列表视图中的文件链接以 l
开头,而不是通常的 -
开头。
即使您的终端没有以不同颜色显示软链接,您也可以通过这种方式识别链接。
3.创建目录软链接
创建目录的软链接与创建文件的符号链接相同。您只需要将目标文件名/路径替换为目录名/路径即可。
ln -s target_directory link_name
您会注意到,Linux 终端中软链接和硬链接的颜色通常不同。到目录的硬链接是不可能的(通常)。
4. 更新现有的软链接(或硬链接)
您可以覆盖现有链接。默认情况下,如果您尝试使用现有链接指向新文件,则会抛出错误:
ln: failed to create symbolic link 'soft-link-to-file': File exists
为此,ln 命令有两个选项:
-i
:交互模式询问您是否要覆盖现有链接。-f
:强制模式仅更新现有链接,无需任何确认。
假设您想强制更新符号链接。您可以执行以下操作:
ln -sf new_file existing_soft_link
请注意为软链接添加s
,否则您会将软链接转换为硬链接。
额外提示:通过一系列链接获取原始文件
通常,当您使用带 -l
选项的 ls 命令时,它会显示它指向的文件。
但如果存在链接链,则不会显示原始文件。例如,您创建一个指向文件的链接,然后创建另一个指向第一个链接的链接。在长列表中,第二个链接将指向第一个链接。
要从链接链中查找原始文件,您可以按以下方式使用 readlink -f
:
readlink -f soft_link
-f
选项代表“follow”,如“follow the chain”。
下图更好地解释了该示例:
为什么我们需要链接?
现在您已经知道如何创建链接了,让我们简单介绍一下为什么需要链接?它们有什么实际目的?
可能有几个用例。假设您下载了一个带有代码和可执行文件的软件。您将整个内容保存在 /opt
目录中。但要从任何地方运行该程序,您需要将其可执行文件放在 /usr/bin
目录中。
如果将可执行文件移至此目录,它可能无法工作,因为它需要访问某些代码,并且无法从 /usr/bin
目录中找到这些文件的路径。您可以在此处创建指向 /usr/bin
目录中的可执行文件的链接。
这样,程序就可以从系统上的任何位置运行,并且程序的可执行文件保留在其原始程序文件夹中。
链接是 Linux 的重要组成部分。您会发现它们在系统中的许多地方使用。只需查看 /lib
目录,您就会看到大量的软链接。
接下来怎么办?
我强烈建议阅读以下与 Linux 中的链接概念相关的文章:
什么是软链接?
硬链接详解
查找损坏的符号链接
Linux中inode的概念
我真心希望您在本教程中学会有效地使用 ln 命令。随时欢迎提出问题和建议。