При каких обстоятельствах PATH
перефразируется в bash? Я не могу понять, когда необходимо вызвать hash -r
и когда это происходит автоматически. Лучшее, что я могу понять, это то, что PATH перефразируется всякий раз, когда набирается команда, которая не найдена.
2
1 ответ
3
bash не хэширует все содержимое PATH
. Он имеет только хэш-таблицу команд, которые использовались во время этого сеанса (иначе в этом процессе оболочки). Например:
$ hash hits command 1 /home/grawity/code/bin/todo $ ls boot/ dev/ etc/ home/ usr/ ... $ hash hits command 1 /usr/bin/ls 1 /home/grawity/code/bin/todo
Таким образом, hash -r
необходим, только если вы использовали программу хотя бы один раз в текущей оболочке, а затем переместили ее в другое место.