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:
realpathno está disponible en todas las versiones de Linux, peroreadlinkdeberí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
-fbandera y entonces esto funciona. iereadlink symlinkNamerealpath <path to the symlink file>debería hacer el truco.fuente
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.sabores unix ->
ll symLinkNameOSX ->
readlink symLinkNameLa 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
statcomando que mostrará más información. Comandostat ~/.sshen la pantalla de mi máquinaEspero que esto pueda ayudar a alguien.
fuente
Puede usar
awkcon unasystemllamadareadlinkpara obtener el equivalente de unalssalida 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}'