我的 PATH 中有 /usr/bin,稍后在 PATH 中有点(表示当前目录)。我在 /var 和 /someother 这两个目录中有一个程序“abcxyz”。如果我在 /var 中的 mate 终端中并键入一些荒谬的名称 dgxuznk,那么 bash 会如您所料那样说:“bash: dgxuznk: command not found”。如果我现在在 /usr/bin 中创建一个名为 dgxuznk 的链接,指向 /someother 中的程序,它会运行该程序,正如您所期望的那样。但是,如果我现在删除该链接,它不再说“找不到命令”,而是说“bash:/usr/bin/dgxuznk:没有这样的文件或目录”。就好像它记得它之前在哪里找到它,并希望再次在 /usr/bin 下找到它。
更糟糕的是,如果我现在将 /var(我所在的位置)中的程序重命名为 dgxuznk,并键入“dgxuznk”,它仍然会抱怨“bash:/usr/bin/dgxuznk:没有这样的文件或目录”,就好像它可以' t 越过 PATH 中的 /usr/bin 以查看该点并在当前目录中查找该程序。
这仅在 Fedora 19 中吗?如何对其进行编程以通过搜索路径中的 /usr/bin 并找到当前目录点?
(提示:如果你想重现这个错误 - 不要让它在当前目录中找到程序,直到它在 /usr/bin 中找到它。)