繁体   English   中英

在Linux(Ubuntu)中,当我看到“没有这样的文件或目录”时,如何确定找不到哪个特定文件

[英]In Linux (Ubuntu), how do I determine which specific file was not found when I see “No such file or directory”

在Ubuntu中,我给出了这些命令并获得了这个输出:

soujanya@LLN-Ubuntu:~/workspace/openEAR-0.1.0$ ls -l SMILExtract
-rwxr-xr-x 1 soujanya soujanya 3789876 Aug 20  2009 SMILExtract
soujanya@LLN-Ubuntu:~/workspace/openEAR-0.1.0$ whoami
soujanya
soujanya@LLN-Ubuntu:~/workspace/openEAR-0.1.0$ ./SMILExtract
bash: ./SMILExtract: No such file or directory
soujanya@LLN-Ubuntu:~/workspace/openEAR-0.1.0$

SMILExtract是一个可执行文件(不是shell脚本),我无权访问此文件的源代码。 也许它会调用某个system()或者可能不会,我无法知道。

我听说这个错误可能是因为文件是32位而且我在64位系统上运行它,所以No such file or directory引用加载器而不是这个文件。 我认为这不是我的原因,但无论如何,我的问题是:

有没有办法找出WHICH文件是No such file or directory 也许是Bash中的一个特殊变量或类似的东西。

您可以使用strace运行程序,该工具可以显示程序使用的系统调用。 它会产生大量输出,但您可以看到程序尝试打开的文件。 像这样运行你的程序:

strace ./SMILExtract

要确定32/64位问题,你可以'提交./SMILExtract'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM