Deve-se ter cuidado aqui: quando ls ou stat não exibem caminho absoluto - o link não possui caminho absoluto! Isso é esp. importante quando o dispositivo está montado, por exemplo, em um contexto diferente (por exemplo, se você tiver algo em um CD ou pendrive ou tentar recuperar algum disco rígido quebrado). Todas as soluções mencionadas (caminho real, readlink, ....) mostram apenas o caminho absoluto no contexto montado.
flolo
Respostas:
225
realpathnão está disponível em todos os sabores do Linux, mas readlinkdeveria estar.
readlink -f symlinkName
O acima deve fazer o truque.
Como alternativa, se você não tiver nenhum dos itens acima instalados, poderá fazer o seguinte se tiver o python 2.6 (ou posterior) instalado
man realpathmostra na parte inferior que faz parte do "GNU coreutils", que eu tenho certeza que sempre vem no Ubuntu, então mesmo que o @IanStapletonCordasco diga " realpathnão está disponível em todos os sabores do linux", deve pelo menos estar disponível em todos os Ubuntu e sabores derivados do Ubuntu, eu acredito.
Gabriel Staples
10
sabores unix -> ll symLinkName
OSX -> readlink symLinkName
A diferença é que a 1ª maneira exibirá o caminho do link sym de maneira intermitente e a 2ª maneira apenas ecoaria no console.
A pergunta estava solicitando especificamente o caminho completo / absoluto, não o caminho relativo (../../file.txt). Ambas as respostas fornecerão o caminho relativo.
wisbucky
3
Outra maneira de ver informações é o statcomando que mostrará mais informações. Comando stat ~/.sshno visor da minha máquina
Podemos fazer isso sem readlink; apenas use ls -l. Isso também não funciona, tenta fazê-lo em tudo no diretório (não links) e se o seu ls estiver configurado para usar cores, o awk será completamente interrompido. apenas usefind . -maxdepth 1 -type l -ls | awk '{print $11 "\t" $12 "\t" $13}'
Respostas:
realpath
não está disponível em todos os sabores do Linux, masreadlink
deveria estar.O acima deve fazer o truque.
Como alternativa, se você não tiver nenhum dos itens acima instalados, poderá fazer o seguinte se tiver o python 2.6 (ou posterior) instalado
fonte
-f
sinalizador e isso funciona. iereadlink symlinkName
realpath <path to the symlink file>
deve fazer o truque.fonte
man realpath
mostra na parte inferior que faz parte do "GNU coreutils", que eu tenho certeza que sempre vem no Ubuntu, então mesmo que o @IanStapletonCordasco diga "realpath
não está disponível em todos os sabores do linux", deve pelo menos estar disponível em todos os Ubuntu e sabores derivados do Ubuntu, eu acredito.sabores unix ->
ll symLinkName
OSX ->
readlink symLinkName
A diferença é que a 1ª maneira exibirá o caminho do link sym de maneira intermitente e a 2ª maneira apenas ecoaria no console.
fonte
Outra maneira de ver informações é o
stat
comando que mostrará mais informações. Comandostat ~/.ssh
no visor da minha máquinaEspero que isso ajude alguém.
fonte
Você pode usar
awk
com umasystem
chamadareadlink
para obter o equivalente a umals
saída com caminhos completos de link simbólico. Por exemplo:Será exibido, por exemplo
fonte
ls -l
. Isso também não funciona, tenta fazê-lo em tudo no diretório (não links) e se o seu ls estiver configurado para usar cores, o awk será completamente interrompido. apenas usefind . -maxdepth 1 -type l -ls | awk '{print $11 "\t" $12 "\t" $13}'