O que obtém a saída quando você executa which
sem -a
é aquele que será executado. (e o segundo com -a
é o preferido em relação ao terceiro).
Isso não leva em consideração os builtins, aliases e funções do shell que serão executados (a partir do shell) antes de qualquer outro executável.
Portanto, é melhor usar type
.