为什么 bash 会声称文件不存在但实际上它确实存在?
$ ls -l a
-r-x------ 1 configurator configurator 3904 Dec 7 10:36 a
$ file a
a: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.2.5, stripped
$ ./a
-bash: ./a: No such file or directory
答案1
您出现此错误是因为您尝试在 64 位操作系统上运行 32 位可执行文件。
并且该消息No such file or directory
不涉及名为 的可执行文件a
。相反,它涉及的错误是辅助程序这是运行 32 位动态链接可执行文件所必需的a
。
您可以在静态和动态链接中找到更多信息在这个答案中。
答案2
问题可能不是您尝试运行的文件,而是它所依赖的文件。运行ldd
该文件以查看是否找不到其依赖项。