readlink -f "$(type -P sleep)"
ou se você está preocupado com o desempenho:
cpath="$(type -P sleep)"; [ ! -L "$cpath" ] || cpath="$(readlink -f "$cpath")"
Usar readlink -e (existente) em vez de readlink -f pode poupar você desse tipo de acidente em que você opera em um arquivo não existente.
O segundo exemplo assume que o caminho retornado por type -P é canônico, o que significa que ele pressupõe que seu caminho não tenha componentes não canônicos.