На BSD toolchain я делаю:
stat -f %Y <filename>
Например:
% ln -sf /bsd ~/blah
% stat -f %Y ~/blah
/bsd
В наборе инструментов GNU это не так просто, вы можете использовать что-то вроде:
$ stat -c %N /usr/bin/firefox
`/usr/bin/firefox' -> `../lib/firefox-3.6.12/firefox.sh'
Затем используйте awk / cut и sed для извлечения и удаления ненужных кавычек.
Или более сложное решение - использовать ls -al
и awk / cut для извлечения нужного столбца.