符号链接(也称为软链接)是一种指向另一个文件的快捷方式。 它在 Linux 中大量用于共享库。
但是你怎么知道链接指向哪个原始文件呢?
为此,您可以使用 ls 命令。 惊讶吗? 不要这样。 长名单 ls -l
显示符号链接指向的位置:
ls -l /path/to/file
为了 example,我创建了一个名为的软链接 MyTorrents
以另一个磁盘为目标,因此我的命令将是:
ls -l /home/sagar/Symbolics/MyTorrents
但是,这不是一个简单的方法来跟踪原始文件的符号链接,因为如果它是多层链接(指向另一个链接的链接指向一个文件),则 ls 命令不会显示源文件。
如何在 Linux 中找到符号链接的目标文件
毫无疑问,拥有足够的技能,你确实有多种方法来完成同一件事,尤其是在我们考虑 Linux 的情况下。
因此,我将使用以下命令行实用程序来跟踪符号链接:
- 阅读链接
- 真实路径
- 统计
- 文件
在学习本教程的同时,您可以使用 ln 命令创建链接和练习。
1.使用readlink命令
一个专门为实现我们的目标而设计的实用程序。 是的,那是阅读链接。
它非常易于使用,默认情况下可在每个 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

2.使用realpath命令
顾名思义,realpath 实用程序用于获取文件和目录的路径,但有趣的是,当不使用任何选项时,它可以让我们找到符号链接的来源。
即使没有任何选项,使用 realpath 也等同于使用 readlink -f
所以不用担心被映射到另一个符号链接。
跟随符号链接到源文件的 realpath 的语法是:
realpath /path/to/symbolic/link
指定路径后,最终结果应如下所示:

3.使用stat命令
stat 实用程序用于获取文件的状态,也可用于查找符号链接的原始来源。
只需给出符号链接的路径即可 stat
命令,就是这样。
stat /path/to/symbolic/link

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

4.使用文件命令
好吧,使用 file 命令非常简单,您需要遵循之前在其他示例中看到的相同语法。
带有符号链接路径的文件命令。 这就是你所需要的!
file /path/to/symbolic/link

最后的话
如果您正在处理多层软链接层,我建议使用前两种方式来跟踪符号链接。
这些实用程序非常基本,不需要任何复杂的语法,但如果您仍然感到困惑,请在评论中告诉我。