Para corrigir o problema permanentemente sem desabilitar totalmente o hash, coloque isso no seu bashrc:
shopt -s checkhash
Veja minha outra resposta sobre como resolver o problema imediato.
Depois de mover um arquivo executável que executei recentemente (ou mais comumente, depois de desinstalar algo de algum lugar e instalar outra versão em outro lugar), o bash não consegue encontrá-lo, mesmo que ainda esteja no PATH.
Exemplo:
find
sudo mv /usr/bin/find /usr/local/bin
find
Resultados em:
bash: /usr/bin/find: No such file or directory
Isso é realmente chato porque aconteceu comigo dezenas de vezes. Como posso impedir que isso aconteça?
Para eliminar o problema imediato:
hash -r
Para impedir que isso aconteça novamente:
set +h
para desabilitar o hashing (ou seja, armazenamento em cache na memória).
Isso pode ser colocado em um arquivo de inicialização do bash como /etc/bashrc
.
A desvantagem desta solução é que ela diminui um pouco a velocidade se você tiver sistemas de arquivos de rede lentos montados e no PATH.
Realmente, na minha opinião, esse é um antigo bug bash que deveria ter sido corrigido anos atrás, e isso é apenas uma solução alternativa.Isso pode acontecer se a nova cópia não for executável, portanto, observe suas permissões e verifique se elas estão corretas.