终端命令不起作用

终端命令不起作用

我将所有以 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 上就不再有静态链接的二进制文件了。

相关内容