O primeiro é a própria palavra-chave interna bash time (compilada com bash ) e a segunda é o executável externo time ( /usr/bin/time , vem com o pacote time ).
Além disso, which não pode mostrar os comandos internos ou as palavras-chave do shell, pois ele apenas pesquisa por PATH , é necessário usar type para isso. Sendo um shell embutido, type pode adicionalmente verificar as entidades internas do shell (e também PATH ), para que você possa identificar a diferença:
type -a time
Aqui:
$ type -a time
time is a shell keyword
time is /usr/bin/time
O primeiro será executado se você usar apenas time . Você também pode obter o que está sendo executado usando apenas type (sem -a ):
type time
O -a diz type para pesquisar nas entidades internas do shell e também em PATH , por exemplo, pesquisar em todas as origens possíveis.
Se por algum motivo você precisar do externo, use qualquer um deles:
\time
"time"
'time'
command time