В оболочке Bash есть встроенная команда hash -r
для сброса внутреннего $PATH
кэша для исполняемых файлов.
Когда необходимо использовать эту команду?
Связанный: Как перефразировать исполняемые файлы в $ PATH с помощью bash
В оболочке Bash есть встроенная команда hash -r
для сброса внутреннего $PATH
кэша для исполняемых файлов.
Когда необходимо использовать эту команду?
Связанный: Как перефразировать исполняемые файлы в $ PATH с помощью bash
Ответы:
Поэтому, когда кэшированная / хранимая информация больше не обновляется и не действует, вам может потребоваться ее сброс.
Узнайте больше об этом приятном ответе на Unix stackexchange .
источник
Если вы ранее запускали программу в этом вызове оболочки, а затем устанавливали другую версию в более раннем каталоге в вашем
$PATH
списке поиска, вам нужно сбросить хэш, чтобы он нашел ее в новом месте. В противном случае он будет использовать кеш для поиска программы в старом месте.Вам также необходимо сбросить хэш, если программа установлена в 2 каталогах в вашей папке
$PATH
, и вы удалите копию из более раннего расположения после ее запуска. В противном случае он попытается найти его в этом месте и сообщить «Нет такого файла или каталога» (лично я думаю, что он должен автоматически очистить хеш и выполнить полный поиск, когда это произойдет, но это не произошло, когда я попытался ).Обратите внимание, что вам не нужно сбрасывать весь хеш, вы можете использовать:
заставить его обновить запись в кэше только для этого имени, или:
удалить только эту запись в кэше. Они оставляют все остальные записи кэша в покое.
Вам не нужно использовать
hash -r
после изменения$PATH
, он сбрасывается автоматически, когда это сделано.источник