我正在我的 CentOS 7 机器上安装protocolbuf
,安装后,我在运行protoc
编译器二进制文件时发现一些不一致的情况:
$ which protoc
/usr/local/bin/protoc
$ protoc
bash: /bin/protoc: No such file or directory
这看起来肯定是错误的,我该如何解决这个问题?
答案1
有了现代的贝壳,他们记住您之前运行的命令的路径。因此,例如:
bash-4.2$ hash
hash: hash table empty
bash-4.2$ whoami
sweh
bash-4.2$ hash
hits command
1 /usr/bin/whoami
现在,如果您删除一个程序(在您的情况下/bin/protoc
)并将其安装在新位置 ( /usr/local/bin/protoc
),当前 shell 将尝试旧位置。它失败了,因为旧文件不存在。
您可以使用 告诉 shell 忘记所有记住的路径hash -r
。
这将迫使它再次搜索路径。
该which
命令不理解当前 shell 的哈希值。该type
命令是一个更准确的 shell 内置命令。