![跟踪符号链接的路由](https://linux22.com/image/101737/%E8%B7%9F%E8%B8%AA%E7%AC%A6%E5%8F%B7%E9%93%BE%E6%8E%A5%E7%9A%84%E8%B7%AF%E7%94%B1.png)
我想使用打印整个链接的附加选项来解析符号链接。例如,我想运行一个命令,readlink -f "symlink2"
该命令报告链接的每个条目。换句话说,如果您要解析符号链接“symlink2->symlink1->/path/file”,那么上面命令的结果是“/path/file”,我希望得到如下输出:
$readlink -f "symlink2
symlink1
/path/file
答案1
一种方法是创建自己的递归readlink
。
function readlinkWithPrint() {
link=`readlink "$@"`
[ -e "$link" ] && echo "$link"
[ -h "$link" ] && readlinkWithPrint "$link"
}
这是一个测试:
$ touch file
$ ln -s file symlink1
$ ln -s symlink1 symlink2
$ readlinkWithPrint symlink2
symlink1
file
不幸的是,这个功能非常基础;您提供给 frist 的选项readlink
不会传播到其余选项,而且您无法读取多个文件。