Se você executou anteriormente um programa nessa chamada de shell e instalou outra versão dele em um diretório anterior na lista de pesquisa $PATH
, é necessário redefinir o hash para encontrá-lo no novo local . Caso contrário, usará o cache para encontrar o programa no local antigo.
Você também precisa redefinir o hash se um programa estiver instalado em dois diretórios no seu $PATH
e remover a cópia do local anterior depois de executá-la. Caso contrário, ele tentará encontrá-lo naquele local e informar "Nenhum arquivo ou diretório" (pessoalmente, acho que ele deve limpar automaticamente o hash e fazer uma pesquisa completa quando isso acontecer, mas isso não aconteceu quando tentei ).
Note que você não precisa redefinir o hash inteiro, você pode usar:
hash name
para forçá-lo a atualizar a entrada do cache apenas para esse nome ou:
hash -d name
para excluir apenas essa entrada de cache. Estas deixam todas as outras entradas de cache sozinhas.
Você não precisa usar hash -r
depois de modificar $PATH
, ele é redefinido automaticamente quando isso é feito.