O Bash mantém um cache de locais de comando na memória, para que não precise fazer toda a exploração PATH toda vez que você iniciar um comando. Na sua sessão bash original, bash havia memorizado anteriormente que mono
era /usr/bin/mono
. Em seguida, você removeu /usr/bin/mono
e adicionou /usr/local/bin/mono
, mas seu bash em execução ainda tinha o local antigo em seu cache.
Você pode manipular o cache do local de comando com o hash
builtin. Em particular hash -r
limpa o cache.
which
é um comando externo, portanto, ele não usa o cache do bash e executa uma consulta PATH todas as vezes. Você também pode ter usado o type
, que é interno e, portanto, usa o cache de pesquisa.