Почему КОТОРАЯ команда не дает ожидаемого пути?

Я установил новый vim 7.3 в систему по адресу ~/tools/bin. В /usr/bin/vim есть еще один vim 7.2.

Я добавил ~/tools/bin в $PATH, и когда я набираю vim в терминале, он правильно запускает vim 7.3. Но когда я использую vim, чтобы найти путь к vim, он дает /usr/bin/vim, который должен быть vim 7.2, я ожидаю, что это должен быть /home/zijwu/tools/bin/ вим (~/инструменты/бин/вим)

Ниже приведена команда и вывод из терминала. Так почему же они дают неверный путь?

>vim --version

VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Jul 11 2013 12:17:16)

>/usr/bin/vim --version

VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Nov 15 2012 00:32:35)

>~/tools/bin/vim --version

VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Jul 11 2013 12:17:16)

>echo $PATH

~/tools/bin:~/mercurial-2.6.3:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

>which vim

/usr/bin/vim

person ZijingWu    schedule 19.08.2013    source источник
comment
Что дает который который дает?   -  person stark    schedule 19.08.2013
comment
Это дает следующий результат /usr/bin/который   -  person ZijingWu    schedule 19.08.2013
comment
strace /usr/bin/which vim -- может быть интересно посмотреть, столкнулся ли он с какой-либо проблемой при просмотре двоичного файла vim, расположенного в ~/tools/bin.   -  person Brian Cain    schedule 19.08.2013


Ответы (1)


Вы неправильно настраиваете $PATH. При просмотре $PATH записей расширение тильды не выполняется, поэтому ~/tools/bin фактически ищет (эффективно) ./~/tools/bin, а не $HOME/tools/bin.

person Chris Jester-Young    schedule 19.08.2013