如何找到符号链接菊花链的最终目标?

如何找到符号链接菊花链的最终目标?

我需要发出几个命令来跟踪一系列符号链接到达最终目标。

是否有一个命令可以一步完成此操作?

which updatedb
/usr/bin/updatedb  

ls -l /usr/bin/updatedb  
lrwxrwxrwx 1 root root 26 2010-09-01 16:22 /usr/bin/updatedb -> /etc/alternatives/updatedb  

ls -l /etc/alternatives/updatedb  
lrwxrwxrwx 1 root root 25 2010-09-01 16:21 /etc/alternatives/updatedb -> /usr/bin/updatedb.mlocate  

ls -l /usr/bin/updatedb.mlocate  
-rwxr-xr-x 1 root root 34492 2010-03-24 21:16 /usr/bin/updatedb.mlocate  

答案1

使用readlink -e <linkfile>。请参阅 readlink 的手册页以获取有关其论点的更多信息。

答案2

您可以使用readlink -e@htorque 中提到的,它是默认安装的。但是,如果您执行了类似操作ln -s a areadlink -e a则不会给出任何输出,这与readlink bb普通文件中执行的操作相同。

如果您安装了该软件包chasesudo apt-get install chase,以“追逐符号链接”命名),您将获得更多信息丰富的输出。

$ chase a
chase: /tmp/a: symlink loop detected, giving up...
$ chase b
/tmp/b

并且可以详细运行它:

$ chase --verbose /opt/python/3
/opt/python/3
-> 3.6
-> 3.6.2
/opt/python/3.6.2

显示中间环节

相关内容