无法在 Ubuntu 中执行二进制文件:找不到文件

无法在 Ubuntu 中执行二进制文件:找不到文件

当我尝试运行任何可执行文件时,file not found会发生错误。有时它什么也没说,但什么也没做。

例如,当我执行 时,./blah-blah.bin它无法找到文件,尽管它显然存在。当我执行 时./blah-blah-file-2.sh,它没有任何动静。

注1:文件有+x。
注2:root也不能执行。
注 3:执行 /usr/bin 中的所有内容。
注 4:我无法从 GUI 尝试它,我只能访问其控制台。

有什么问题?

更新:突然一些命令(例如ls)开始失败并带有file not found.他们昨天工作了...

答案1

尝试

ldd ./alfresco-install.bin

并检查输出。这听起来很可疑,好像它缺少一两个动态库。

答案2

它是脚本还是二进制可执行文件?

如果是脚本,请检查该#!行。

根据您的 shell,带有错误行的命令的错误消息#!可以引用脚本而不是缺少的解释器。

例如,使用 tcsh:

% cat foo
#!/bin/no_such_interpreter

echo hello
% chmod +x foo
% ./foo
./foo: Command not found.
%

使用 bash 时,错误消息有所不同:

$ chmod +x foo
$ cat foo
#!/bin/no_such_interpreter

echo hello
$ ./foo
bash: ./foo: /bin/no_such_interpreter: bad interpreter: No such file or directory
$

即使#!线看起来\r好吧,如果行尾有一个字符,它可能会失败,如果文件是在 Windows 上创建的,这种情况经常会发生。什么是

head -1 blah-blah.bin | cat -A

给你看?

如果这不能解决问题,请告诉我们确切地您输入了什么命令以及产生的错误消息。

编辑 :我意识到你的标题表明它是一个二进制可执行文件。到底是一个什么样的文件呢?的输出是什么

file blah-blah.bin

答案3

检查挂载选项,具体来说,是否挂载为noexec。

如果这是问题所在,例如在 /tmp 上,请执行以下操作

sudo mount -o remount,exec /tmp

相关内容