我在路径中有一个命令~/.local/bin/
(我们称之为狗)。使用完整路径调用命令~/.local/bin/dog
可以按预期工作。
当我这样做时,which dog
我得到了预期的~/.local/bin/dog
.当我检查 $PATH~/.local/bin
是否存在(实际上是/home/ec2-user/.local/bin
)
但如果只是输入dog
我会收到以下错误:
-bash: /usr/local/bin/dog: No such file or directory
的输出type dog
是dog is hashed (/usr/local/bin/dog)
但对于type -a dog
是dog is /home/ec2-user/.local/bin/dog
有想法吗?
答案1
也许你应该运行命令hash -r
。从约翰1024的回答:
如果您更新系统并导致某些可执行文件移动到新位置,则 shell 可能会感到困惑。解决方案是运行 hash -r,这会导致 shell 忘记所有散列位置并从头开始搜索 PATH。