删除特定可执行路径的 bash 哈希值

删除特定可执行路径的 bash 哈希值

gmx我在这两条路径上调用了一个命令:

/usr/local/bin/gmx

/Users/alexamil/.nvm/versions/node/v9.2.0/bin/gmx

如何仅删除其中一个的 bash 哈希值?

如果我跑:

hash -d gmx

它正在删除哪一个?是删除两者,还是仅删除最新值?这对于删除特定的一个有效吗?

hash -d  "/Users/alexamil/.nvm/versions/node/v9.2.0/bin/gmx"

答案1

gmxBash 只记住每个名称的一个路径,因此它(最多)只有一个路径。您可以通过运行来查看是哪一个

hash -t gmx

跑步

hash -d gmx

将删除gmx( 所示的hash -t)的任何条目。下次您尝试运行 时gmx,shell 将在您的 中列出的目录中查找它PATH,并将找到的第一个目录存储为哈希值。

您无法删除特定值,但可以强制使用特定值,包括不在您的 上的值PATH

hash -p /usr/local/bin/gmx gmx

这将导致 shell/usr/local/bin/gmx在您键入时运行gmx

Bash 手册了解详情。

相关内容