根据基本前缀解析路径(带有绝对符号链接)

根据基本前缀解析路径(带有绝对符号链接)

考虑我们在某个位置安装一个外部目录树,然后chroot进入其中:

mount /dev/sdx1 /mnt
chroot /mnt
readlink /usr/bin/myapp    # Outputs: /usr/libexec/myapp/run

有没有什么工具可以解析里面的路径/mnt字首之前(没有)正在做chroot?例如,如果有一个 /usr/bin/myapp文件输入 /mnt这是指向绝对路径的符号链接/usr/libexec/myapp/运行(而不是更稳健../libexec/myapp/运行),那么如何解决这个问题 /mnt/usr/libexec/myapp/run没有 chroot ?

看起来 realpath --relative-to=DIR --relative-base=DIR很有希望,但实际上还有另一个目的。当路径中仅出现一个符号链接时,使用--canonicalize-missing可能会略有帮助,但它会返回相对于其基础的路径,该路径本身在主机系统中无效。

当然,编写一个手动遍历每个路径级别并使用 解析每个路径级别的脚本是可行的readlink,但这似乎有点矫枉过正。

相关内容