bash 何时重新哈希 PATH?

asm*_*rer 2 bash

bash中什么情况下会进行PATHrehashed?我不知道什么时候需要打电话hash -r以及什么时候会自动发生。我能想到的最好的办法是,每当键入未找到的命令时,都会重新修改 PATH 。

use*_*686 6

bash 不会对PATH. 它只有一个在此会话期间(也称为此 shell 进程中)使用的命令的哈希表。例如:

$ 哈希值
点击命令
   1 /home/grawity/代码/bin/todo
$ls
启动/ dev/ etc/ home/ usr/ ...
$ 哈希值
点击命令
   1 /usr/bin/ls
   1 /home/grawity/代码/bin/todo

hash -r当您在当前 shell 中至少使用过某个程序一次,然后将其移至其他地方时,才需要使用此命令。

  • @asmeurer:据我所知,bash 永远不会自动重新哈希,除非设置了 shell 选项 `checkhash` 并且哈希文件名不再存在。(然后它只重新散列一个名称,而不是整个散列。) (2认同)