我已经/usr/local/bin
匆匆忙忙。正在运行which drush
会返回/usr/local/bin/drush
。但是,正在运行drush
会显示" -bash: /usr/bin/drush: No such file or directory
"。正常运行/usr/local/bin/drush
。
我的$ PATH是/usr/local/bin:/usr/local/mysql/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin
[在编辑中添加]在我遇到此问题之前,我在/usr/bin/drush
删除了 的脚本副本。它没有正确构建。
究竟是什么导致了这个问题?我不想每次都输入/usr/local/bin/drush
;这就是我/usr/local/bin
中$PATH
的原因。
答案 0 :(得分:3)
您是否在此shell中运行drush
,然后将其从/usr/bin
移至/usr/local/bin
?如果是这样,hash
命令将显示shell已记住/usr/bin
位置中的命令,并且会在没有重新检查的情况下将其设置为存在。运行hash -r
将清除此列表。
工作示例:
$ echo >/usr/bin/hello 'echo hello'
$ chmod +x /usr/bin/hello
$ hash
hits command
1 /bin/chmod
$ hello
hello
$ hash
hits command
1 /bin/chmod
1 /usr/bin/hello
$ which hello
/usr/bin/hello
$ mv /usr/bin/hello /usr/local/bin/
$ hello
bash: /usr/bin/hello: No such file or directory
$ hash
hits command
1 /usr/bin/which
1 /bin/chmod
1 /bin/mv
2 /usr/bin/hello
$ which hello
/usr/local/bin/hello
$ hash -r
$ hash
hash: hash table empty
$ hello
hello
$ hash
hits command
1 /usr/local/bin/hello