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.
-fy 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 'readlinkutilidad fue lanzado con FreeBSD 4.10. Fue (re) implementado como un enlace duro para elstatcomando Página de manual de MacOS X Página de manual de FreeBSD 9 ). Tenga en cuenta que no tiene una-mopción.