PATH 中已卸载的程序

PATH 中已卸载的程序

我已经卸载了gnome-screenshot,但是当我gnome在终端中写入并点击时TAB,它仍然建议 gnome-screenshot (和其他 gnome 应用程序,但它是正确的)。如果我想使用已卸载的 gnome-screenshot,bash 会正确告知没有这样的程序。

bash: gnome-screenshot: command not found

which也找不到截图路径。我从 PATH 中搜索了目录,但那里没有像 gnome-screenshot 这样的文件。

为什么我看到的建议是错误的?

编辑:

谢谢 Kusalananda 的回答,我学到了一些新东西。我还发现我gnome-screenshot='gnome-screenshot -i'的别名中有.bashrc.

我完全忘记了。愚蠢的我。

答案1

shellbash会缓存在搜索 中的路径时找到的位置命令$PATH。这使得 shell 知道egls是在每次使用时/bin/ls无需搜索目录。$PATHls

当您卸载提供以这种方式缓存的命令的包时,shell 不会知道该命令的缓存位置不再有效,直到您尝试实际使用该命令但失败为止。

您可以清空此缓存以强制 shell 重新扫描$PATH命令的位置。您可以使用hash -r(请参阅shellhelp hashbash)来执行此操作。

简而言之,shell 仍然认为该命令gnome-screenshot存在,因此它补全了该命令的名称。运行hash -r以使 shell 忘记命令的缓存位置。

相关内容