Linux中的ln命令:创建软链接和硬链接
链接是对另一个文件的引用。
链接为同一个文件赋予多个名称,并允许它们同时存在于两个或者多个位置。
链接有两种类型:
- 软链接或者符号链接:这仅仅是原始文件的快捷方式。
- 硬链接:这指向原始文件的存储位置。
硬链接和软链接都是使用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
,否则我们将把软链接转换为硬链接。
温馨提示:通过一系列链接获取原始文件
通常,当使用带有-l选项的ls命令时,它会显示它指向的文件。
但是,如果有链接链,则不会显示原始文件。
例如,我们创建一个指向文件的链接,然后创建另一个指向第一个链接的链接。
在长列表中,第二个链接将指向第一个链接。
要从链接链中查找原始文件,可以按以下方式使用readlink -f
:
readlink -f soft_link
-f选项代表“跟随(follow)”,就像“跟随链条”中的一样。
为什么我们需要链接?
既然我们知道如何创建链接,那么简单地说明为什么我们需要链接?
它们的实际用途是什么?
可能有几个用例。
假设我们下载了包含其代码和可执行文件的软件。
我们将整个内容保存在/opt
目录中。
但是要从任何地方运行该程序,我们需要将其可执行文件放在/usr/bin
目录中。
如果将可执行文件移至该目录,则它可能无法工作,因为它需要访问某些代码,并且无法从/usr/bin
目录中找到这些文件的路径。
我们可以在这里在/usr/bin目录中创建指向此可执行文件的链接。
这样,该程序可以在系统上的任何位置运行,并且该程序的可执行文件保留在其原始程序文件夹中。
链接是Linux的重要组成部分。
我们会发现它们已在系统中的许多地方使用。
只需查看/lib
目录,我们将看到大量的软链接。