环境信息:centos 7.6 aarch64
因为需要在aarch64位环境运行arm32位程序,所以我手动的往/lib目录下添加了许多arm32位依赖库文件。
程序执行结束后,需要恢复环境,我提取了一组关键字,想通过mv /lib/ld-*.so.* /tmp命令把我添加的arm32位依赖库文件移动到/tmp目录,以恢复环境。
结果,奇怪的事发生了,当我执行完mv /lib/ld-*.so.* /tmp之后,执行ll命令想查看是否还有arm32位的依赖库文件残留时,系统出现下面的错误:
/lib/ld-linux-aarch64.so: not such file
(⊙o⊙)…,我误删了aarch64位的依赖库了吧。赶紧使用mv 命令恢复,结果mv命令执行也是一样的报错。
之后,我尝试了cp ,ln,scp都是一样的错误。
google搜一下,找到了下面一段话:
if you only moved /lib,you can easily recover:
code:
/NEWLIBPATH/ld-linux.so.3 /bin/mv/NEWLIBPATH /lib
that ld-linux is magic.
原来,/lib/ld-linux.so可以作为命令运行!关于ld-linux.so的进一步原理和作用,欢迎大家留言区互动,一起讨论学习:)
参考链接:https://www.linuxquestions.org/questions/linux-software-2/i-moved-lib-help-309345/
原文地址:https://www.cnblogs.com/zhaominmin/p/11442410.html
时间: 2024-11-09 09:54:08