卸载用户目录下安装的程序再在/usr/local目录下安装程序,报错问题解决。No such file or directory 卸载用户目录下安装的程序再使用root用户在/usr/local/bin/目录下安装好了{my-package}也能通过绝对路径/usr/local/bin/{my-package}运行{my-package}但我不使用绝对路径运行{my-package}时就会报错报错内容是报错内容-bash: /home/{username}/.local/bin/{my-package}: No suchfileor directory这是 bash 命令哈希缓存导致的问题。bash 会记住之前执行过的命令路径旧的缓存指向/home/{username}/.local/bin/{my-package}已不存在而新安装路径是 /usr/local/bin/{my-package}。清除 bash 哈希缓存即可解决hash-r或者直接重新哈希stc-smihash-d{my-package}之后再运行{my-package}就会自动找到{my-package}。原因说明bash 维护一个内部哈希表来记录已执行命令的完整路径。当你第一次运行{my-package}时它找到了/home/{username}/.local/bin/{mypackage}并缓存了下来。之后你用 root 在 bin 重新安装后旧路径已不存在但 bash 仍然优先查哈希表于是报错No such file or directory。hash -r会清空这个哈希表让 bash 重新在$PATH中查找。