当我尝试运行任何可执行文件时,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