如何遵循符号链接

符号链接(也称为软链接)是一种指向另一个文件的快捷方式。 它在 Linux 中大量用于共享库。

但是你怎么知道链接指向哪个原始文件呢?

为此,您可以使用 ls 命令。 惊讶吗? 不要这样。 长名单 ls -l 显示符号链接指向的位置:

ls -l /path/to/file

为了 example,我创建了一个名为的软链接 MyTorrents 以另一个磁盘为目标,因此我的命令将是:

ls -l /home/sagar/Symbolics/MyTorrents
符号链接指示其原始文件

但是,这不是一个简单的方法来跟踪原始文件的符号链接,因为如果它是多层链接(指向另一个链接的链接指向一个文件),则 ls 命令不会显示源文件。

毫无疑问,拥有足够的技能,你确实有多种方法来完成同一件事,尤其是在我们考虑 Linux 的情况下。

因此,我将使用以下命令行实用程序来跟踪符号链接:

  • 阅读链接
  • 真实路径
  • 统计
  • 文件

在学习本教程的同时,您可以使用 ln 命令创建链接和练习。

一个专门为实现我们的目标而设计的实用程序。 是的,那是阅读链接。

它非常易于使用,默认情况下可在每个 Linux 发行版上使用。 所以只需给出一个符号链接的路径 readlink 命令,就是这样。

readlink /path/to/symbolic/link

我的符号链接位于 /home/sagar/Symbolics/MyTorrents 所以我的命令是:

readlink /home/sagar/Symbolics/MyTorrents

但是什么 如果您的符号链接涉及多个层 例如一个链接指向另一个链接? 那么,在这种情况下,你必须使用 -f 选项。

为了这 example,我创建了一个新的符号链接,位于 /home/sagar/Documents/NewLink 并映射到另一个链接,以便更好地了解如何处理此类情况:

readlink -f /home/sagar/Documents/NewLink
在处理多个 Latyer 时使用 readlink 获取符号链接的来源

2.使用realpath命令

顾名思义,realpath 实用程序用于获取文件和目录的路径,但有趣的是,当不使用任何选项时,它可以让我们找到符号链接的来源。

即使没有任何选项,使用 realpath 也等同于使用 readlink -f 所以不用担心被映射到另一个符号链接。

跟随符号链接到源文件的 realpath 的语法是:

realpath /path/to/symbolic/link

指定路径后,最终结果应如下所示:

使用 realpath 命令查找符号链接的来源

3.使用stat命令

stat 实用程序用于获取文件的状态,也可用于查找符号链接的原始来源。

只需给出符号链接的路径即可 stat 命令,就是这样。

stat /path/to/symbolic/link
使用 stat 命令查找符号链接的来源

如果您发现其他细节没有必要,您可以使用 -c%N 过滤掉它们的选项。 不是最容易记住的选项,因此使用 man 或 help 命令来回忆它。

stat -c%N /path/to/symbolic/link
stat 命令显示符号链接的原始来源,杂乱无章

4.使用文件命令

好吧,使用 file 命令非常简单,您需要遵循之前在其他示例中看到的相同语法。

带有符号链接路径的文件命令。 这就是你所需要的!

file /path/to/symbolic/link
使用文件命令查找符号链接的来源

最后的话

如果您正在处理多层软链接层,我建议使用前两种方式来跟踪符号链接。

这些实用程序非常基本,不需要任何复杂的语法,但如果您仍然感到困惑,请在评论中告诉我。