Терминальные команды не работают

Я переместил все файлы, начиная с 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 

или в линуксе

 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-битным, и вызвать правильный динамический компоновщик времени выполнения.

Кстати: этот метод документирован для Solaris с 2004 года, и с этого года в Solaris больше нет статически связанных двоичных файлов.