Você pode usar typeou command -v. A saída de typeé legível por humanos; a saída de command -vpode ser executada pelo Bash.
Observe que eles são realmente um pouco diferentes. typee commandprocure o valor de hash do comando. Ou seja, se você digitar cmd, type cmdou command -v cmdvai dizer exatamente o que vai ser executado. Eles também trabalham com aliases, funções do Bash e componentes internos do Bash (embora type -pos ignorem e retornem apenas arquivos verdadeiros).
whichapenas faz uma pesquisa no PATH. Isso é diferente porque:
- Se houver um alias, função ou interno com o mesmo nome, ele será chamado.
- Se um comando foi adicionado anteriormente no PATH desde o último hash, ele será encontrado por
which, mas a execução desse comando usará o valor do hash (você pode forçar a atualização do hash no Bash com hash -r).
Normalmente, as pessoas realmente querem type, não whichpelo menos para uso interativo, pois usam para descobrir "de onde vem esse comando quando eu o executo?" Você só deve usar whichse realmente deseja fazer uma pesquisa PATH.