链接是对另一个文件的引用,它为同一文件提供多个名称,并允许它们同时位于两个或多个位置。
有两种类型的链接:
软连接:也称为符号链接,原始文件的快捷方式;
硬链接:这将指向原始文件的内存位置。
下图显示了两种链接的工作方式:

硬链接和软链接都是使用 ln 命令创建的,本文将会介绍如何使用 ln 命令在 Linux 中创建各种类型的链接。
ln 命令示例
ln [option] target_file link_name
1,创建指向文件的硬链接
ln target_file link_name

2,创建指向文件的软连接
ln -s target_file link_name

在 ls -l 命令的输出列表中,大多数 LInux 终端都会以不同颜色显示软链接及其指向的目标;同时链接都会以 l 开头,而不是普通文件的 -,这也是识别链接的一种方式。
3,创建指向目录的软链接
ln -s target_directory link_name

你可能会注意到了,在 Linux 终端中,软链接和硬链接的颜色是不同的,一般情况下,无法创建指向目录的硬链接。
4,更新已有的软链接(或硬链接)
ln: failed to create symbolic link 'soft-link-to-file': File exists
-i:系统会询问你是否要覆盖现有链接;
-f:强制覆盖现有链接,不会给确认信息。
比如,我们要强制覆盖一个现有链接,看下面的例子:
ln -sf new_file existing_soft_link

通过链接链获取原始文件
通常情况下,使用 ls -l 命令来查看文件的时候,链接会显示它所指向的文件。
但如果存在链接链的话,则不会显示原始文件。例如,创建指向文件的链接,然后创建指向第一个链接的另一个链接;在长列表的输出中,第二个链接将指向第一个链接。
readlink -f soft_link

为什么会需要链接
上面我们介绍了如何创建链接,接下来我们再来了解下链接的实际用途。
假设我们下载了一个包含有代码和可执行文件的软件,然后我们将整个软件放在了 /opt 目录中。但是如果想要从任何路径下都可以运行该程序,那需要将可执行文件放到 /usr/bin 目录下。
如果我们将可执行文件放到 usr/bin 目录下以后,它可能不会正常运行,因为它需要访问某些代码(即随同文件一起被下载的那些代码),但是在 /usr/bin 目录下无法找到这些代码文件。这种情况下,我们就可以在 /usr/bin 目录中创建指向该可执行文件的链接,而不是把可执行文件移动到该目录下。
这样,程序就可以在系统的任何地方运行,其可执行文件仍会保留在原地方。
链接是 Linux 的重要组成部分,它在应用在很多地方。在系统的 /lib 目录下,会有很多软链接存在。
以上就是本次分享全部内容,欢迎讨论。




