Como pode 'qual cmd'! = cmd?

2

Alguém pode explicar isso?

$ vim --version
VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Jul 12 2010 12:47:31)
$ 'which vim' --version
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Oct 13 2011 22:52:17)

Acabei de compilar a versão mais recente do vim e instalei-a em $HOME/bin , que é o primeiro caminho em $PATH . which vim retorna o caminho correto: /home/user/bin/vim , no entanto, quando executo vim , lança /usr/bin/vim .

Eu iniciei outro xterm e o problema desapareceu, mas ainda estou curioso para saber como o termo anterior entrou em um estado tão estranho. Alguma idéia?

    
por mwcz 14.10.2011 / 05:31

1 resposta

5

No UNIX, quando você executa um comando, o shell salva o caminho onde encontrou o binário. Se você alterar o caminho ou instalar uma versão diferente no diretório anterior no caminho, o shell não o encontrará, porque na verdade ele não procura por comandos que já tenha encontrado.

Se você tivesse digitado hash -r antes de comparar qual vim e vim, então você não teria visto esta discrepância.

    
por 14.10.2011 / 07:10

Tags