O shell pode estar armazenando em cache a localização do comando. Por exemplo. O zsh faz isso e tem o comando rehash para limpar o cache.
Eu tenho um script chamado jsl in /usr/local/bin . A execução de which jsl está lá.
Desejo usar temporariamente uma versão diferente e, quando eu echo $PATH , vejo que /usr/bin é anterior no caminho. Então, adicionei um script chamado jsl nessa pasta e verifiquei se ele é executável e é executado corretamente quando chamado com o caminho completo.
No entanto, which jsl ainda encontra a primeira versão e jsl ainda a executa.
Por que meu novo jsl não é encontrado por which ou executado pelo nome?
Tags path