Você pode usar readlink
para imprimir para onde um link aponta. O argumento para readlink
sem opções tem que ser um link, se você passar um arquivo, ele não irá imprimir nada. A opção -f
para readlink
, do pacote coreutils, segue recursivamente os links e imprime o nome do arquivo, mesmo que o argumento já seja um arquivo.
Se você fizer isso ( -n
suprime a nova linha no final da saída readlink
):
dpkg -S "$(readlink -fn "$(which rename)")"
Você receberá a resposta:
perl: /usr/bin/prename
que um link foi seguido neste caso é claro do prename
, mas isso não é garantido para ser o caso (por exemplo, se um link estava apontando para um executável rename
em um diretório que não está em seu $ PATH).
Como @ 011c indicado, e se você tiver instalado, você pode usar realpath
como alternativa para readlink -f