linux命令执行遵循环境变量PATH中的路径,但是有时我们会发现这种现象:
# mv /sbin/ls /bin/ [root@xx~]# ls /tmp/ -bash: /sbin/ls: No such file or directory
/sbin和/bin同样是PATH环境变量中的搜索路径,但是移动之后却发现不了命令,这是因为,命令在上次执行之后以key-value形式缓存:
[root@xx~]# hash hits command 2 /bin/mv 1 /bin/cp 2 /sbin/ls #缓存的命令执行路径
那如果让次命令执行成功呢?
[root@xx~]#hash -d ls #清除命令缓存 [root@xx~]# ls /tmp/ [root@xx~]# echo $? 0
如果清除全部命令缓存,请用命令:
[root@xx~]#hash -r
本文出自 “技术小菜” 博客,请务必保留此出处http://390892467.blog.51cto.com/2006821/1439075
linux 命令更换路径之后无法执行,布布扣,bubuko.com
原文:http://390892467.blog.51cto.com/2006821/1439075