外部ディレクトリツリーをどこかにマウントしてから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/実行chrootはありませんか?
有望に見えますが、 realpath --relative-to=DIR --relative-base=DIR
実際には他の目的があります。を使用すると、パスに1つのシンボリックリンクしかない場合は少し役立ちますが、ホスト--canonicalize-missing
システムで無効なデフォルトリンクに基づいて相対パスを返します。
もちろん、各パスレベルを手動で繰り返し、スクリプトを使用して各パスレベルを解析するスクリプトを作成することも可能ですreadlink
が、これは過剰に見えます。