Respuestas:
link=/var/opt/foo
target=$(readlink "$link")
$target
ahora es el objetivo del enlace, exactamente como se almacenó en el sistema de archivos.
Sin embargo, los enlaces simbólicos pueden ser relativos, por lo que esto sería mejor para el uso normal:
target=$(readlink -f "$link")
Tenga en cuenta que esto utiliza readlink
de GNU Coreutils, que puede no existir en BSD y otros sistemas.
Editar: readlink -f
Funciona en BSDs, siempre que exista el objetivo de enlace. realpath
Es otra herramienta, solo BSD, que funciona de manera similar.
-f
y readlink -f
Funciona igual de bien (asumiendo que el objetivo del enlace existe). En BSD, realpath
parece ser otra alternativa a readlink -m
.
readlink()
Llamada al sistema desde los días de 4.2BSD. Los actuales BSDs 'readlink
utilidad fue lanzado con FreeBSD 4.10. Fue (re) implementado como un enlace duro para elstat
comando Página de manual de MacOS X Página de manual de FreeBSD 9 ). Tenga en cuenta que no tiene una-m
opción.