link=/var/opt/foo
target=$(readlink "$link")
$target
agora é o destino do link, exatamente como foi armazenado no sistema de arquivos.
Os links simbólicos podem ser relativos, portanto, isso seria melhor para o uso normal:
target=$(readlink -f "$link")
Observe que isso usa readlink
do GNU Coreutils, que pode não existir no BSD e em outros sistemas.
Editar: readlink -f
funciona em BSDs, desde que o destino do link exista. realpath
é outra ferramenta somente BSD que funciona de maneira semelhante.