Questão Como pode `qual cmd`! = Cmd?


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)

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

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


2


origem




Respostas:


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 essa discrepância.


5



Isso faz todo o sentido, obrigado. - mwcz