Caminho absoluto da entrada do usuário sem perder links simbólicos dentro

1

É 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)
    
por hellcode 05.03.2015 / 17:01

1 resposta

1

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
    
por 05.03.2015 / 17:15