内部シンボリックリンクを失うことなくユーザーが入力した絶対パス

内部シンボリックリンクを失うことなくユーザーが入力した絶対パス

内部シンボリックリンクを失うことなく、シェルスクリプトでユーザー入力パス(絶対または相対)を絶対パスに変換できますか?たとえば、/a/b/c は現在のユーザーディレクトリ、c はシンボリックリンク b です。 /のように:

input .      => result /a/b/c
input ./d    => result /a/b/c/d
input ../c   => result /a/b/c
input /a/b/c => result /a/b/c
(readlink converts it to /a/b/s, but I need /a/b/c)

ベストアンサー1

あなたの質問を正しく理解したら、以下を使用する必要がrealpathあります-s

-s、--stripストリップのみ。と..コンポーネントがありますが、シンボリックリンクは確認されません。

$ realpath -s a/b/c
/tmp/a/b/c
$ readlink a/b/c
s

おすすめ記事