Linux 试图运行可执行文件-文件或目录不存在,但文件存在。我可以执行它,但只能从目录it';在哪

Linux 试图运行可执行文件-文件或目录不存在,但文件存在。我可以执行它,但只能从目录it';在哪,linux,Linux,正如标题所示,我正在尝试运行一个可执行文件。当我试图从其他目录运行它时,会出现“文件或目录不存在”错误。但是,当我在文件所在的目录中时,我没有问题。有什么建议吗 任何其他有此问题的人都无法执行其文件,无论他们当前所在的目录是什么 谢谢大家! 要执行/tmp/virus.tmp,您需要运行: /tmp/virus.tmp 您尝试改为运行: ./tmp/virus.tmp 失败,因为它尝试在当前目录的tmp目录中查找程序。(是当前目录。)例如,如果您在/home/user/中并键入/tmp/pr

正如标题所示,我正在尝试运行一个可执行文件。当我试图从其他目录运行它时,会出现“文件或目录不存在”错误。但是,当我在文件所在的目录中时,我没有问题。有什么建议吗

任何其他有此问题的人都无法执行其文件,无论他们当前所在的目录是什么


谢谢大家!

要执行/tmp/virus.tmp,您需要运行:

/tmp/virus.tmp
您尝试改为运行:

./tmp/virus.tmp

失败,因为它尝试在当前目录的
tmp
目录中查找程序。(
是当前目录。)例如,如果您在
/home/user/
中并键入
/tmp/prog
,它将尝试执行
/home/user/tmp/prog
,请解释。程序在哪里,您使用什么命令执行它。包含可执行文件的目录不在路径中?听起来您的
$path
中有当前目录(
),但您的
$path
中没有文件所在的目录。例如,我正在尝试运行文件“virus.tmp”,位于/tmp/virus.tmp(这是针对软件安全类的,无需担心!)。当我从另一个目录使用命令./tmp/virus.tmp时,比如说/usr/随便什么,我得到的错误是没有文件或目录存在。但是,当我转到/tmp并运行./virus.tmp时,它可以正常工作,没有任何问题。实际上,我刚刚发现,如果我尝试从根目录运行该程序,它可以正常工作!当我尝试从/usr目录运行它时,它就是不工作!谢谢你的回答。跟进问题。在我的脚本中,我将virus.tmp更改为ls(cp/bin/ls/tmp/virus.tmp)。现在,当我使用/tmp/virus.tmp调用virus.tmp时,我得到了相同的原始版本error@user1887163始终确认文件实际上是可执行的(使用
ls-l
可以查看其可执行位是否已设置。)