Você pode usar type
ou command -v
. A saída de type
é legível por humanos; a saída de command -v
pode ser executada pelo Bash.
Note que eles são realmente um pouco diferentes. type
e command
pesquisam o valor de hash do comando. Ou seja, se você digitar cmd
, type cmd
ou command -v cmd
dirá exatamente o que será executado. Eles também trabalham em aliases, funções Bash e Bash builtins (embora type -p
os ignore e retorne apenas arquivos verdadeiros).
which
apenas faz uma pesquisa no PATH. Isso é diferente porque:
- Se houver um alias, função ou integrado 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 com hash (você pode forçar a atualização do hash no Bash com hash -r
) .
Normalmente, as pessoas realmente querem type
, não which
, pelo menos para uso interativo, pois usam para descobrir "de onde vem esse comando quando eu o executo?" Você só deve usar which
se realmente quiser fazer uma pesquisa PATH.