我将所有以 lib 开头的文件从 /../ 移动到某个文件夹,如下所示:
mv /../lib* /to/some/folder
之后我就无法将其移回原处。
-bash: /bin/mv: /lib64/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory
即使ls
它是作为-bash: /bin/ls: /lib64/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory
答案1
恢复使用busybox
在您的情况下与您busybox
安装时一样有效。
busybox
是静态链接的二进制文件,这对您的情况有帮助,但无需使用静态链接的二进制文件来修复此类缺陷。
你也可以这样做:
LD_LIBRARY_PATH=/some/path/where/the/libs/are mv ....
如果您还移动了动态运行时链接器,则还需要手动调用运行时链接器。要了解其工作原理,请致电:
man ld.so.1
或在 Linux 上
man ld.so
这通常会产生如下命令行:
LD_LIBRARY_PATH=/path/to/libs /path/to/libs/ld.so.1 mv ....
在 Linux 上,替换/path/to/libs/ld.so.1
为/path/to/libs/ld-linux-x86-64.so.2
或 您系统上实际使用的内容。
一般来说,您需要知道您想要调用的二进制文件是 32 位还是 64 位二进制文件,并调用正确的动态运行时链接器。
顺便说一句:这是自 2004 年以来为 Solaris 记录的方法,从那一年起,Solaris 上就不再有静态链接的二进制文件了。