Terminalbefehle funktionieren nicht

Terminalbefehle funktionieren nicht

Ich habe alle Dateien, die mit lib beginnen, von /../ in einen Ordner verschoben, mv /../lib* /to/some/folder

danach kann ich es nicht mehr zurück verschieben.Es kommt als -bash: /bin/mv: /lib64/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory

Auch für lses kommt als-bash: /bin/ls: /lib64/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory

Antwort1

Die Wiederherstellung busyboxhat bei Dir so geklappt wie Du busyboxes installiert hast.

busyboxist eine statisch verknüpfte Binärdatei und dies hat in Ihrem Fall geholfen, aber es besteht keine Notwendigkeit, statisch verknüpfte Binärdateien zu verwenden, um diese Art von Defekten zu reparieren.

Sie könnten auch Folgendes tun:

LD_LIBRARY_PATH=/some/path/where/the/libs/are mv ....

Wenn Sie auch den dynamischen Runtime-Linker verschoben haben, müssen Sie den Runtime-Linker auch manuell aufrufen. Um zu verstehen, wie das funktioniert, rufen Sie Folgendes auf:

man ld.so.1

oder unter Linux

man ld.so

Das Ergebnis ist normalerweise eine Befehlszeile wie:

LD_LIBRARY_PATH=/path/to/libs /path/to/libs/ld.so.1  mv ....

Ersetzen Sie es unter Linux /path/to/libs/ld.so.1durch /path/to/libs/ld-linux-x86-64.so.2oder was auf Ihrem System tatsächlich verwendet wird.

Im Allgemeinen müssen Sie wissen, ob die Binärdatei, die Sie aufrufen möchten, eine 32-Bit- oder eine 64-Bit-Binärdatei ist, und den richtigen dynamischen Laufzeitlinker aufrufen.

Übrigens: Dies ist die Methode, die seit 2004 für Solaris dokumentiert ist und seit diesem Jahr gibt es unter Solaris keine statisch verknüpften Binärdateien mehr.

verwandte Informationen