К сожалению, стандартный набор утилит unix не включает простой доступ к системному вызову readlink
. Некоторые системы включают команду readlink
. Если он доступен, есть большая вероятность, что readlink foo
напечатает цель символической ссылки foo
. Если вы испытываете желание использовать параметры, имейте в виду, что существует множество версий этой команды; вы не получите переносимость даже между дистрибутивами Linux.
Если у вас есть доступный perl, perl -e 'print readlink $ARGV[0]' mylink
печатает цель mylink
.
Если вам нужен переносимый способ и у вас нет Perl или чего-либо еще вменяемого, вы, возможно, можете обойтись при разборе вывода ls -l mylink
.
Если у вас есть символическая ссылка на каталог, в который у вас есть разрешение на изменение, то $(cd mylink && command -p pwd)
- это абсолютный путь к конечной цели ссылки. Например, если foo
является символической ссылкой на /var/tmp/bar
, bar
является каталогом в /var/tmp
и /var/tmp
является символической ссылкой на /tmp
, эта команда выдает /tmp/bar
.