Hay que tener cuidado aquí: cuando ls o stat no muestran una ruta absoluta, ¡el enlace no tiene una ruta absoluta! Esto es esp. importante cuando el dispositivo está montado, por ejemplo, en un contexto diferente (por ejemplo, si tiene algo en un CD o memoria USB o intenta recuperar un disco duro roto). Todas las soluciones mencionadas (realpath, readlink, ....) muestran solo la ruta absoluta en el contexto montado.
flolo
Respuestas:
225
realpathno está disponible en todas las versiones de Linux, pero readlinkdebería estarlo.
readlink -f symlinkName
Lo anterior debería funcionar.
Alternativamente, si no tiene ninguno de los anteriores instalados, puede hacer lo siguiente si tiene instalado Python 2.6 (o posterior)
man realpathmuestra en la parte inferior que forma parte de "GNU coreutils", que estoy bastante seguro de que siempre viene en Ubuntu, así que aunque @IanStapletonCordasco dice " realpathno está disponible en todos los sabores de Linux", al menos debería estar disponible en todos Sabores de Ubuntu y derivados de Ubuntu, creo.
Gabriel Staples
10
sabores unix -> ll symLinkName
OSX -> readlink symLinkName
La diferencia es que la primera forma mostraría la ruta del enlace simbólico de forma intermitente y la segunda forma simplemente lo haría eco en la consola.
Puede hacerlo sin readlink; solo usa ls -l. Esto tampoco funciona en absoluto, intenta hacerlo en todo en el directorio (no enlaces) y si su ls está configurado para usar colores, awk se rompe por completo. solo usefind . -maxdepth 1 -type l -ls | awk '{print $11 "\t" $12 "\t" $13}'
Respuestas:
realpath
no está disponible en todas las versiones de Linux, peroreadlink
debería estarlo.Lo anterior debería funcionar.
Alternativamente, si no tiene ninguno de los anteriores instalados, puede hacer lo siguiente si tiene instalado Python 2.6 (o posterior)
fuente
-f
bandera y entonces esto funciona. iereadlink symlinkName
realpath <path to the symlink file>
debería hacer el truco.fuente
man realpath
muestra en la parte inferior que forma parte de "GNU coreutils", que estoy bastante seguro de que siempre viene en Ubuntu, así que aunque @IanStapletonCordasco dice "realpath
no está disponible en todos los sabores de Linux", al menos debería estar disponible en todos Sabores de Ubuntu y derivados de Ubuntu, creo.sabores unix ->
ll symLinkName
OSX ->
readlink symLinkName
La diferencia es que la primera forma mostraría la ruta del enlace simbólico de forma intermitente y la segunda forma simplemente lo haría eco en la consola.
fuente
Otra forma de ver la información es el
stat
comando que mostrará más información. Comandostat ~/.ssh
en la pantalla de mi máquinaEspero que esto pueda ayudar a alguien.
fuente
Puede usar
awk
con unasystem
llamadareadlink
para obtener el equivalente de unals
salida con rutas de enlace simbólicas completas. Por ejemplo:Mostrará, por ejemplo,
fuente
ls -l
. Esto tampoco funciona en absoluto, intenta hacerlo en todo en el directorio (no enlaces) y si su ls está configurado para usar colores, awk se rompe por completo. solo usefind . -maxdepth 1 -type l -ls | awk '{print $11 "\t" $12 "\t" $13}'