考虑我们在某个位置安装一个外部目录树,然后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
,但这似乎有点矫枉过正。