Linux

終端命令不起作用

  • September 9, 2018

我將所有以 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

恢復使用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 上不再有靜態連結的二進製文件。

引用自:https://unix.stackexchange.com/questions/465061