Что делает команда hash -r? [дубликат]

На этот вопрос уже есть ответ здесь:

Недавно я полностью переключился на Linux из Windows, и пока я пытался обновить свой пакет npm , используя n , я получил новые двоичные файлы в / usr / local / bin , а предыдущая версия была в / usr / bin . Итак, он всегда выбирал предыдущую версию.

По рекомендации другого пользователя я использовал команду hash-r , и она сработала. Но я не знаю, что он сделал.

Было бы очень полезно, если бы кто-нибудь мог объяснить мне его внутреннее устройство.

9
задан 2 September 2017 в 08:24

2 ответа

hash встроенная команда эти bash оболочка. Для сводки того, что это, можно ввести help hash при приглашении оболочки:

$ help hash
hash: hash [-lr] [-p pathname] [-dt] [name ...]
    Remember or display program locations.

    Determine and remember the full pathname of each command NAME.  If
    no arguments are given, information about remembered commands is displayed.

    Options:
      -d    forget the remembered location of each NAME
      -l    display in a format that may be reused as input
      -p pathname   use PATHNAME as the full pathname of NAME
      -r    forget all remembered locations
      -t    print the remembered location of each NAME, preceding
            each location with the corresponding NAME if multiple
            NAMEs are given
    Arguments:
      NAME  Each NAME is searched for in $PATH and added to the list
            of remembered commands.

    Exit Status:
    Returns success unless NAME is not found or an invalid option is given.

Так, hash помнит, что местоположения программы, и hash -r забывают их.

7
ответ дан 23 November 2019 в 04:59

Оболочка отслеживает, где исполняемые файлы, такие как npm находятся, чтобы избежать необходимости искать переменную окружения PATH каждый раз, когда Вы хотите выполнить что-то.

  • аргумент (сброса)-r хешу очищает кэш.

  • , Если Вы хотите видеть то, что хеш команд помнил, просто введите хеш самостоятельно без любых аргументов.

можно отключить кэш в целом путем ввода, устанавливает +h и re-renable это через-h

набора
4
ответ дан 23 November 2019 в 04:59

Другие вопросы по тегам:

Похожие вопросы: