Odpowiedzi:
link=/var/opt/foo
target=$(readlink "$link")
$target jest teraz celem łącza, dokładnie tak, jak zostało zapisane w systemie plików.
Dowiązania symboliczne mogą być jednak względne, więc byłoby to lepsze w przypadku normalnego użytkowania:
target=$(readlink -f "$link")
Zauważ, że wykorzystuje to readlinkGNU Coreutils, które mogą nie istnieć w BSD i innych systemach.
Edycja: readlink -f działa na BSD, o ile istnieje element docelowy łącza. realpathto kolejne narzędzie tylko do BSD, które działa w podobny sposób.
-fi readlink -fdziała równie dobrze (zakładając, że istnieje cel łącza). W BSD realpathwydaje się być kolejną alternatywą dla readlink -m.
readlink()wywołanie systemowe od czasów 4.2BSD. Obecnereadlinknarzędzie BSD zostało wydane wraz z FreeBSD 4.10. Został (ponownie) zaimplementowany jako twardy link dostatpolecenia ( strona podręcznika MacOS X strona podręcznika FreeBSD 9 ). Zauważ, że nie ma takiej-mopcji.