【发布时间】:2013-01-23 14:01:09
【问题描述】:
我对下面的命令序列感到困惑。
sh-4.2$ pwd
/home/willard
sh-4.2$ ls -l f
-rwxr-xr-x 1 willard users 59116 Jan 23 14:54 f
sh-4.2$ file f
f: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, BuildID[sha1]=0xea0e08ff2b5a062698d45b78177acdd6bf140d1f, stripped
sh-4.2$ ./f
sh: ./f: No such file or directory
sh-4.2$ strace ./f
execve("./f", ["./f"], [/* 32 vars */]) = -1 ENOENT (No such file or directory)
write(2, "strace: exec: No such file or di"..., 40strace: exec: No such file or directory
) = 40
exit_group(1) = ?
+++ exited with 1 +++
sh-4.2$ ls -l f
-rwxr-xr-x 1 willard users 59116 Jan 23 14:54 f
sh-4.2$ uname -a
Linux xdat10 3.6.2-1-ARCH #1 SMP PREEMPT Fri Oct 12 23:58:58 CEST 2012 x86_64 GNU/Linux
这怎么可能?
【问题讨论】:
-
有人在骗你,并在你执行的第二个和第三个命令之间快速删除了文件? (我无法使用 Ubuntu 重现它)
-
eek...
ls f前后的输出是什么? -
这种情况是否持续发生?还是这是一次性的?
-
@davide-berra :添加了
ls f(带有“-l”以显示权限)和显示我的内核版本的命令。 @aaron-waibel:这在我以前从未发生过。我的一个朋友尝试在他的 Debian 机器上执行二进制文件(据我了解),文件执行得很好。我运行的是 64 位操作系统,文件是 32 位二进制文件,但我认为这不是问题,因为我的朋友也在运行 64 位操作系统。我已经 3 个月没有重新启动计算机了,与此同时,我(几乎可以肯定)通过 pacman 获取了一个新内核。你认为重启会有帮助吗?