命令可以查看文件,而 bash 却不能

命令可以查看文件,而 bash 却不能

这是一个非常奇怪的错误,我似乎无法弄清楚。基本上,像这样的命令ls可以查看当前目录中的所有文件,但是当我去执行文件时,它会给出“文件未找到”之类的错误,即使它显然是找不到的。

替代文本

如果您查看屏幕截图中的命令历史记录,您会发现我可以ls进入目录并查看其内容。当我尝试运行该文件时,出现“无此文件或目录”错误。

但是,如果我只输入“vm”,就无法使用制表符补全来完成目录名称,而我的第三个命令是输入“vm”并点击tabtab,它会列出一堆特定于 vmware 的工具而不是子目录名称。然后我可以ls看到我当前的目录内容,它只会列出单个子目录。但是,然后我尝试使用 root 的完整文件路径来运行文件,仍然无济于事。如果有人有任何见解,我将不胜感激。

仅供参考,它是 VMWare Workstation 内的 Ubuntu Server 10.04。

答案1

文件名以红色列出这一事实告诉我它很可能是一个损坏的符号链接。

如果你这么做了,ls -l vmware-tools-distrib/vmware-install.pl你可能会看到类似这样的内容:

lrwxrwxrwx 1 user group   10 2010-09-10 10:19 vmware-install.pl -> non-existent-target

答案2

当您尝试执行命令时,bash 会在 PATH 中搜索该命令。出于安全原因(以避免特洛伊木马攻击),当前工作目录通常不包含在 PATH 中。要在当前目录中执行命令,请在其名称前加上./,例如,

./vmstat

编辑:没关系——没有仔细阅读问题。

相关内容