链接是对另一个文件的引用。 链接为同一个文件提供多个名称,并允许它们同时存在于两个或多个位置。
有两种类型的链接:
- 软链接或符号链接:这只是原始文件的快捷方式。
- 硬链接:这指向原始文件的内存位置。
这张图片显示了这两种类型的链接是如何工作的:
硬链接和软链接都是用 ln 命令创建的。
在本教程中,我将向您展示如何使用 ln 命令在 Linux 中创建各种类型的链接。
ln 命令示例
ln 命令的语法很简单:
ln [option] target_file link_name
让我向您展示一些使用 ln 命令在 Linux 中创建链接的示例。
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
对于软链接,否则您会将软链接转换为硬链接。

额外提示:按照链接链获取原始文件
通常,当您将 ls 命令与 -l
选项,它显示它指向的文件。
但是如果有链接链,它就不会显示原始文件。 为了 example,您创建指向文件的链接,然后创建指向第一个链接的另一个链接。 在长列表中,第二个链接将指向第一个链接。
要从链接链中查找原始文件,您可以使用 readlink -f
以下列方式:
readlink -f soft_link
这 -f
options 代表“follow”,如“follow the chain”。
这张图片解释了 example 更好的:

为什么我们需要链接?
既然您知道如何创建链接,让我们简要介绍一下为什么需要链接? 它们有什么实际用途?
可能有几个用例。 假设您下载了一个带有代码和可执行文件的软件。 你把整个东西都保存在 /opt
目录。 但是要从任何地方运行程序,您需要将其可执行文件放在 /usr/bin
目录。
如果将可执行文件移动到此目录,它可能无法正常工作,因为它需要访问一些代码,并且无法从 /usr/bin
目录。 您可以在此处创建指向此可执行文件的链接 /usr/bin
目录。
这样,程序可以从系统上的任何地方运行,并且程序的可执行文件保留在其原始程序文件夹中。
链接是 Linux 的重要组成部分。 您会发现它们在系统中的许多地方都使用过。 只需查看 /lib
目录,你会看到很多软链接。
接下来是什么?
我强烈建议阅读以下与 Linux 中的链接概念相关的文章:
- 什么是软链接?
- 硬链接详解
- 查找损坏的符号链接
- Linux中inode的概念
我希望您在本教程中学会了有效地使用 ln 命令。 欢迎提出问题和建议。