Birden Fazla Kurulum ve Anlama $ PATH


17

Git'in eski bir sürümü yüklü:

/usr/bin/

Kısa süre önce aşağıdakilere daha yeni bir sürüm indirdim:

/usr/local/bin

Ne zaman yazarım:

which git

Eski sürümün yerini alıyorum. Bunun sadece $ PATH değişkenimde / usr / bin / / usr / local / bin'den önce göründüğünden ve git'in eski sürümünün önce 'bulundu' olduğuna inanıyorum.

Bunu test etmek için git'in eski sürümünü "git_old" olarak değiştirdim. Şimdi yazdığımda:

which git

Beklendiği gibi yeni sürümün konumunu alıyorum. Ama yazdığımda:

git --version

Aşağıdaki hatayı alıyorum:

-bash: /usr/bin/git: No such file or directory

Bilgisayarımın Git için eski konuma neden geri döneceğini merak ediyorum.

Yanıtlar:


30

Bash, yürütülebilir dosyaların tam yolunu önbelleğe alır, böylece $PATHher seferinde bakmak zorunda kalmaz .

Şu hashkomutu kullanarak önbellekte ne olduğunu görebilirsiniz :

deltik@node51 [~]$ hash
hits    command
   1    /usr/bin/git

Bu önbellek aşağıdakilerle temizlenebilir hash -r:

deltik@node51 [~]$ hash -r
deltik@node51 [~]$ hash
hash: hash table empty

Ek kaynaklar


2
Bunu hiç bilmiyordum, harika.
djsmiley2k karanlıkta

1
Diğer kabukların çoğu aynı şeyi yapar, ancak hepsi hash -rönbelleği yeniden yüklemek için kullanmaz . SSH gibi şarkıcı rehashbunun yerine komut olarak kullanılır.
Moshe Katz

PATH = $ PATH önbelleği temizlemelidir. hash -r gerekli değildir.
jrw32982 Monica
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.