터미널 명령이 작동하지 않습니다

터미널 명령이 작동하지 않습니다

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

아니면 리눅스에서

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에는 더 이상 정적으로 링크된 바이너리가 없습니다.

관련 정보