Mengapa perintah WHICH tidak memberikan jalur yang diharapkan?

Saya telah menginstal vim 7.3 baru di sistem di ~/tools/bin. Ada vim 7.2 lainnya di /usr/bin/vim.

Saya telah menambahkan ~/tools/bin di $PATH, dan ketika saya mengetik vim di terminal, ia meluncurkan vim 7.3 dengan benar. Tetapi ketika saya menggunakan vim mana untuk menemukan jalur vim, itu memberikan /usr/bin/vim yang seharusnya menjadi vim 7.2, saya berharap seharusnya /home/zijwu/tools/bin/ vim (~/alat/bin/vim)

Berikut adalah perintah dan output dari terminal, Lalu mengapa yang memberikan jalur yang salah?

>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 sumber
comment
Apa yang diberikan oleh yang mana?   -  person stark    schedule 19.08.2013
comment
Ini memberikan hasil berikut /usr/bin/yang   -  person ZijingWu    schedule 19.08.2013
comment
strace /usr/bin/which vim -- mungkin menarik untuk melihat apakah ia menemui tantangan saat melihat biner vim yang terletak di ~/tools/bin.   -  person Brian Cain    schedule 19.08.2013


Jawaban (1)


Anda salah menyetel $PATH. Dalam melihat $PATH entri, tidak ada perluasan tilde yang dilakukan, jadi ~/tools/bin sebenarnya akan mencari (secara efektif) ./~/tools/bin, bukan $HOME/tools/bin.

person Chris Jester-Young    schedule 19.08.2013