Bash 安装到 /usr/local/bin 后,在 /usr/bin 中发现旧版本的可执行文件,为什么?

Bash 安装到 /usr/local/bin 后,在 /usr/bin 中发现旧版本的可执行文件,为什么?

我在 中安装了一个新的可执行文件,/usr/local/bin并且此目录在我的路径中位于 之前/usr/bin。但是,bash 仍然更喜欢 中的版本,/usr/bin直到我启动新的 bash 进程。该which命令清楚地看到首选版本在 中/usr/local/bin

Bash 必须缓存可执行文件位置。是否可以刷新它以在 /usr/local/bin 中查看新版本,而无需重新启动 bash?

答案1

这个Unix和Linux答案相关:

bash缓存命令的完整路径。您可以使用以下命令验证尝试执行的命令是否经过哈希处理type

$ type svnsync
svnsync is hashed (/usr/local/bin/svnsync)

清除整个缓存:

$ hash -r

或者只有一个条目:

$ hash -d svnsync

欲了解更多信息,请咨询help hashman bash

相关内容