![如何找到符号链接菊花链的最终目标?](https://linux22.com/image/1092187/%E5%A6%82%E4%BD%95%E6%89%BE%E5%88%B0%E7%AC%A6%E5%8F%B7%E9%93%BE%E6%8E%A5%E8%8F%8A%E8%8A%B1%E9%93%BE%E7%9A%84%E6%9C%80%E7%BB%88%E7%9B%AE%E6%A0%87%EF%BC%9F.png)
我需要发出几个命令来跟踪一系列符号链接到达最终目标。
是否有一个命令可以一步完成此操作?
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 a
,readlink -e a
则不会给出任何输出,这与readlink b
在b
普通文件中执行的操作相同。
如果您安装了该软件包chase
(sudo 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
显示中间环节