Bash encontrando a versão antiga do executável em / usr / bin após instalar em / usr / local / bin, por quê?

1

Eu instalei um novo executável em /usr/local/bin e esse diretório está no meu caminho à frente de /usr/bin . Mas o bash ainda prefere a versão em /usr/bin até eu iniciar um novo processo bash. O comando which vê claramente que a versão preferida está em /usr/local/bin .

O Bash deve estar armazenando em cache os locais dos arquivos executáveis. É possível atualizá-lo para ver agora a nova versão em / usr / local / bin sem ter que reiniciar o bash?

    
por Michael Goldshteyn 14.06.2018 / 19:14

1 resposta

3

Este Unix & A resposta do Linux é relevante:

bash does cache the full path to a command. You can verify that the command you are trying to execute is hashed with the type command:

$ type svnsync
svnsync is hashed (/usr/local/bin/svnsync)

To clear the entire cache:

$ hash -r

Or just one entry:

$ hash -d svnsync

For additional information, consult help hash and man bash.

    
por 14.06.2018 / 19:46