17

У меня установлена более старая версия Git по адресу:

/usr/bin/

Я недавно скачал более новую версию для:

/usr/local/bin

Когда я печатаю:

which git

Я получаю местоположение старой версии. Я полагаю, что это просто потому, что /usr /bin / появляется перед /usr / local /bin в моей переменной $ PATH, и поэтому сначала найдена более старая версия git.

Чтобы проверить это, я переименовал старую версию git в "git_old". Теперь, когда я печатаю:

which git

Я получаю местоположение более новой версии, как и ожидалось. Но когда я печатаю:

git --version

Я получаю следующую ошибку:

-bash: /usr/bin/git: No such file or directory

Мне просто интересно, почему мой компьютер возвращается к поиску старого места для Git?

1 ответ1

30

Bash кэширует полный путь к исполняемым файлам, чтобы ему не приходилось каждый раз просматривать $PATH .

Вы можете увидеть, что находится в кеше, используя команду hash :

deltik@node51 [~]$ hash
hits    command
   1    /usr/bin/git

Этот кеш можно очистить с помощью hash -r:

deltik@node51 [~]$ hash -r
deltik@node51 [~]$ hash
hash: hash table empty

Дополнительные ресурсы

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .