readlink -f "$(type -P sleep)"
или, если вы заботитесь о производительности:
cpath="$(type -P sleep)"; [ ! -L "$cpath" ] || cpath="$(readlink -f "$cpath")"
Использование readlink -e
(существует) вместо readlink - f
может спасти вас от подобной аварии, когда вы работаете с несуществующим файлом.
Во втором примере предполагается, что путь, возвращаемый type -P
, является каноническим, что означает, что ваш путь не имеет неканонических компонентов.