デフォルトのプレフィックスに基づいてパスを確認する(絶対シンボリックリンクを含む)

デフォルトのプレフィックスに基づいてパスを確認する(絶対シンボリックリンクを含む)

外部ディレクトリツリーをどこかにマウントしてから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が、これは過剰に見えます。

ベストアンサー1

おすすめ記事