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.
Observe que eles são realmente um pouco diferentes. type
e command
procure o valor de hash do comando. Ou seja, se você digitar cmd
, type cmd
ou command -v cmd
vai dizer exatamente o que vai ser executado. Eles também trabalham com aliases, funções do Bash e componentes internos do Bash (embora type -p
os ignorem e retornem apenas arquivos verdadeiros).
which
apenas 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 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 deseja fazer uma pesquisa PATH.