Se eu entendi sua pergunta corretamente, você precisa usar realpath
com -s
:
-s, --strip Only strip . and .., components, but do not resolve symbolic links.
$ realpath -s a/b/c
/tmp/a/b/c
$ readlink a/b/c
s
É possível converter em um script de shell um caminho de entrada do usuário (absoluto ou relativo) para o caminho absoluto, mas sem perder os links simbólicos, por exemplo, / a / b / c é o diretório do usuário atual e c é um link simbólico para / a / b / s:
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)
Se eu entendi sua pergunta corretamente, você precisa usar realpath
com -s
:
-s, --strip Only strip . and .., components, but do not resolve symbolic links.
$ realpath -s a/b/c
/tmp/a/b/c
$ readlink a/b/c
s