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.