我有一个名为 的jsl
脚本/usr/local/bin
。跑步which jsl
发现它在那里。
我想暂时使用不同的版本,当我echo $PATH
看到它/usr/bin
位于路径的较早位置时。因此,我添加了一个在该文件夹中调用的脚本jsl
,并验证了它是可执行的,并且在使用完整路径调用时可以正确运行。
但是,which jsl
仍然找到第一个版本,并且jsl
仍然运行它。
为什么我的新人没有被名字jsl
找到或被处决?which
答案1
shell 可能正在缓存命令的位置。例如 zsh 就是这样做的,并且有rehash
清除缓存的命令。