Ne zaman bash ile $ PATH yürütülebilir dosyaları yeniden rehash?


9

Bash kabuğu, yürütülebilir dosyalar hash -riçin dahili $PATHönbelleği sıfırlamak için yerleşik bir komut içerir .

Bu komutu kullanmak ne zaman gereklidir?

İlgili: $ PATH içinde yürütülebilir dosyaları bash ile nasıl yeniden canlandırırım


1
... örneğin, yeniden derlediğiniz bir programınız olduğunda ... aynı ada sahip olabilirsiniz ... belki farklı bir yolda ...
Hastur

@Hastur: Yorumunuzun bir soru veya ifade olup olmadığından emin değilim. Eğer ifade, pls cevap olarak gönderin.
kevinarpe

Yanıtlar:


7

hashbir bash yerleşik komutudur. Karma tablo, sonuçları bellekte önbelleğe alarak her komut yazışınızda $ PATH aramasını engellemek için bash özelliğidir.

Bu nedenle, önbelleğe alınan / depolanan bilgiler artık güncellenmediğinde veya geçerli olmadığında sıfırlamanız gerekebilir.

Unix stackexchange ile ilgili bu güzel cevap hakkında daha fazla bilgi edinin .


4

Daha önce bu kabuk çağrısında bir program çalıştırıp $PATHarama listenizdeki önceki bir dizine başka bir sürümünü yüklediyseniz , karmayı yeni konumda bulabilmesi için sıfırlamanız gerekir. Aksi takdirde, programı eski konumda bulmak için önbelleği kullanır.

Ayrıca, programınızdaki 2 dizine yüklüyse karmayı sıfırlamanız ve $PATHçalıştırdıktan sonra kopyayı önceki konumdan kaldırmanız gerekir. Aksi takdirde, bu konumda bulmaya ve "Böyle bir dosya veya dizin yok" bildirmeye çalışacaktır (kişisel olarak, karmayı otomatik olarak temizlemeli ve bu olduğunda tam bir arama yapmalıdır, ancak denediğimde olmadı ).

Tüm karma değerini gerçekten sıfırlamanız gerekmediğini unutmayın, şunları kullanabilirsiniz:

hash name

yalnızca bu ad için önbellek girdisini güncelleştirmeye zorlamak veya:

hash -d name

sadece bu önbellek girdisini silmek için. Bunlar diğer tüm önbellek girdilerini yalnız bırakır.

hash -rDeğiştirdikten sonra kullanmanıza gerek yoktur $PATH, bu yapıldığında otomatik olarak sıfırlanır.


Kurulum parçası ve yolunuzdaki nokta hakkında iyi bir nokta.
kevinarpe
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.