当我在不指定可执行文件的完整路径的情况下执行程序时,Bash必须在其中搜索目录$PATH
以查找二进制文件,看来Bash会在某种高速缓存中记住该路径。例如,我安装了一个Subversion从源代码到的构建/usr/local
,然后svnsync help
在Bash提示符下键入。Bash找到了/usr/local/bin/svnsync
“ svnsync” 的二进制文件并执行了它。然后,当我删除Subversion的安装/usr/local
并重新运行时svnsync help
,Bash会响应:
bash: /usr/local/bin/svnsync: No such file or directory
但是,当我启动Bash的新实例时,它会发现并执行/usr/bin/svnsync
。
如何清除可执行文件路径的缓存?