Como obter o nome do arquivo de um destino do symlink em um script de shell?

0

Digamos que o nome do script seja myscript . É um link simbólico para thescript_1.91.sh

Existe uma maneira de obter o nome do destino do link? Um exemplo: Eu quero escrever em um arquivo de log

cat <<EOF

#########################
'basename $0'
'date -R' 
#########################

EOF

$ 0 contém o nome do argumento do arquivo para o subshell, que é "myscript"

Existe uma maneira de obter o nome do destino de link aqui?

    
por Michael 29.06.2018 / 18:56

1 resposta

1

Se o seu sistema tiver um utilitário readlink , isso será feito.

cat <<END_MESSAGE
#########################
$( basename "$( readlink -f "$0" )" )
$( date -R ) 
#########################
END_MESSAGE

A opção -f é usada para resolver todos os links simbólicos no nome do caminho dado recursivamente, não apenas no primeiro link. Veja o manual de readlink em seu sistema ( man 1 readlink ).

Também relacionado:

por 29.06.2018 / 19:03