Linux
終端命令不起作用
我將所有以 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 上不再有靜態連結的二進製文件。