Powłoka Bash ma wbudowane polecenie hash -r
resetowania wewnętrznej $PATH
pamię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
Powłoka Bash ma wbudowane polecenie hash -r
resetowania wewnętrznej $PATH
pamię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
Odpowiedzi:
hash
jest 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 .
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 $PATH
liś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 -r
Po modyfikacji nie trzeba jej używać $PATH
, resetuje się ona automatycznie po zakończeniu .