Оболонка Bash має вбудовану команду hash -r
для скидання внутрішнього $PATH
кешу для виконуваних файлів.
Коли потрібно використовувати цю команду?
Пов’язано: Як переробити виконувані файли в $ PATH за допомогою bash
Оболонка Bash має вбудовану команду hash -r
для скидання внутрішнього $PATH
кешу для виконуваних файлів.
Коли потрібно використовувати цю команду?
Пов’язано: Як переробити виконувані файли в $ PATH за допомогою bash
Відповіді:
hash
- це вбудована команда bash. Хеш-таблиця є особливістю bash, яка не дозволяє їй шукати $ PATH кожен раз, коли ви вводите команду, кешуючи результати в пам'яті.
Тому, коли кешована / збережена інформація більше не оновлюється або є дійсною, можливо, вам доведеться її скинути.
Детальніше про цю приємну відповідь читайте на Unix stackexchange .
Якщо ви раніше запускали програму в цьому виклику оболонки, а потім встановлюєте іншу її версію в більш ранньому каталозі списку $PATH
пошуку, вам потрібно скинути хеш, щоб він знайшов його в новому місці. В іншому випадку він буде використовувати кеш для пошуку програми у старому місці.
Вам також потрібно скинути хеш, якщо програма встановлена у двох каталогах у вашому $PATH
, і ви видалите копію з попереднього місця після її запуску. В іншому випадку він спробує знайти його в тому місці та повідомити "Немає такого файлу чи каталогу" (особисто, я думаю, він повинен автоматично очистити хеш і здійснити повний пошук, коли це станеться, але це не сталося, коли я спробував ).
Зауважте, що фактично не потрібно скидати весь хеш, ви можете використовувати:
hash name
змусити його оновити запис кешу лише для цього імені або:
hash -d name
видалити саме цей запис кеша. Усі інші записи кешу залишаються в спокої.
Вам не потрібно використовувати hash -r
після зміни $PATH
, вона автоматично скидається, коли це зроблено.