Kiedy ponownie wykonać pliki wykonywalne w $ PATH za pomocą bash?

9

Powłoka Bash ma wbudowane polecenie hash -rresetowania wewnętrznej $PATHpamięci podręcznej dla plików wykonywalnych.

Kiedy konieczne jest użycie tego polecenia?

Powiązane: Jak rehashować pliki wykonywalne w $ PATH za pomocą bash

kevinarpe
źródło
1
... na przykład, gdy masz program, który właśnie skompilowałeś ... o tej samej nazwie ... może pod inną ścieżką ...
Hastur
@Hastur: Nie jestem pewien, czy Twój komentarz jest pytaniem lub stwierdzeniem. Jeśli oświadczenie, pls post jako odpowiedź.
kevinarpe

Odpowiedzi:

7

hashjest wbudowanym poleceniem bash. Tabela skrótów jest funkcją bash, która zapobiega przeszukiwaniu $ PATH za każdym razem, gdy wpisujesz polecenie, buforując wyniki w pamięci.

Więc jeśli buforowane / przechowywane informacje nie są już aktualizowane lub prawidłowe, może być konieczne ich zresetowanie.

Czytaj więcej na ten miły odpowiedź na Unix Stack Exchange Network .

Hastur
źródło
4

Jeśli wcześniej uruchomiłeś program w tym wywołaniu powłoki, a następnie zainstalowałeś jego inną wersję we wcześniejszym katalogu na $PATHliście wyszukiwania, musisz zresetować skrót, aby znalazł go w nowej lokalizacji. W przeciwnym razie użyje pamięci podręcznej, aby znaleźć program w starej lokalizacji.

Musisz także zresetować skrót, jeśli program jest zainstalowany w 2 katalogach w twoim $PATH, i usuniesz kopię z wcześniejszej lokalizacji po uruchomieniu. W przeciwnym razie spróbuje go znaleźć w tej lokalizacji i zgłosi „Brak takiego pliku lub katalogu” (osobiście uważam, że powinien automatycznie wyczyścić skrót i przeprowadzić pełne wyszukiwanie, gdy to się stanie, ale nie zdarzyło się, gdy próbowałem ).

Pamiętaj, że tak naprawdę nie musisz resetować całego skrótu, możesz użyć:

hash name

aby wymusić aktualizację wpisu pamięci podręcznej dla tej nazwy lub:

hash -d name

aby usunąć tylko ten wpis z pamięci podręcznej. Pozostawiają wszystkie pozostałe wpisy pamięci podręcznej w spokoju.

hash -rPo modyfikacji nie trzeba jej używać $PATH, resetuje się ona automatycznie po zakończeniu .

Barmar
źródło
Dobra uwaga na temat części instalacyjnej i punktu na twojej ścieżce.
kevinarpe