mv /lib目录下的so文件之后,为何linux系统什么事情也做不了了?如何恢复环境呢?

环境信息: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

mv /lib目录下的so文件之后,为何linux系统什么事情也做不了了?如何恢复环境呢?的相关文章

C/C++遍历目录下的所有文件(Windows/Linux篇,超详细)

前面的一篇文章我们讲了用Windows API遍历一个目录下的所有文件,这次我们讲用一种Windows/Linux通用的方法遍历一个目录下的所有文件. Windows/Linux的IDE都会提供一个头文件--<io.h>.看名字,似乎是关于I/O的,但是实际上它还提供了类似于WIN32_FIND_DATA.FindFirstFile().FindNextFile()和FindClose()的查找文件的功能. _finddata_t结构 _finddata_t结构用来记录查找到的文件的信息.实际

使用for循环创建在指定目录下批量创建文件并重命名所有文件

要求1: 使用for循环在/root/scripts/practice/q1/oldboy 目录下创建十个文件.名称依次为: oldboy-1, oldboy-2, ..... oldboy-10. 脚本实现: #!/bin/bash #Question1 shopt -s expand_aliases alias ll="ls -l" cd /root/scripts/practice/q1 #首先判断目录是否存在,不存在则创建目录 if [ ! -e oldboy ] then  

python实例31[列出目录下所有的文件到txt]

代码: (使用os.listdir) import os def ListFilesToTxt(dir,file,wildcard,recursion):    exts = wildcard.split(" ")    files = os.listdir(dir)    for name in files:        fullname=os.path.join(dir,name)        if(os.path.isdir(fullname) & recursion

django目录下的各文件

本文部分转载. 使用Python setup.py install命令从源代码安装完Django后,这些都会被拷贝到Python安装目录下的Lib/site-packages/django子目录中.之后我们使用Django的第一条命令大概就是使用django-admin.py startproject projectname来创建一个工程.django目录下的各文件如下: -Bin //可执行文件,django的PATH可以设置在这里,我们最常用的命令之一django-admin.py就在其中

用shell脚本递归遍历某个目录下的所有文件并移动到某个指定的目录中

1,先看下脚本cat recursive.sh #!/bin/shread -p "input path:" FilePath function getAllfiles(){for file in ls $FilePathdoif [ -f $file ]thenecho $filemv $file /bak_file/elif test -d $filethenecho "-------------------------------->"cd $fileF

eclipse maven项目如何将所有的jar包复制到lib目录下?

1.情景展示 我们知道,maven项目的jar包并不存在与项目当中,项目所需的jar包都保存在本地仓库中,如果本地仓库没有,会从配置的中央仓库下载,如果中央仓库也没有就会报错: 如上图所示,我想将项目所依赖的所有jar包都放在src/main/webapp/WEB-INF/lib目录下, 如何实现? 这样做的目的,是为了可以热部署. 2.分析 默认情况下,要想获取项目所依赖的jar包,需要执行maven命令来实现,比如:mvn install 执行后,target目录下会出现该项目以及已经打好的

etc目录下的重要文件介绍

一.liunx系统目录根(/)目录下的结构信息 boot 目录存放引导系统启动文件信息 etc目录存放系统服务配置文件信息 opt/usr目录存放用户安装的第三方软件程序信息 root系统超级管理用户的家目录 home普通用户的家目录 var目录存放系统日志文件 tmp目录临时存放数据的目录 sbin目录存放二进制超级管理员命令文件目录(super Binary) bin目录存放二进制普通用户命令文件目录(Binary) media目录存放音频.视频 图片 lib目录存放库文件目录 lib64目

etc目录下的重要文件

总结etc目录下的重要文件 1) 网卡配置文件 文件路径信息: /etc/sysconfig/network-scripts/ifcfg-eth0 文件作用说明: 配置网卡地址信息 (IP地址 掩码地址 网关地址 DNS地址信息) 文件详细信息: TYPE=Ethernet --- 指定网络类型 以太网类型 BOOTPROTO=none --- 获取IP地址方式 none static(手动配置地址) dhcp(自动获取地址) DEFROUTE=yes --- 是否激活默认?路由? (网络知识)

eclipse maven工程中src/main/resources目录下创建的文件夹是包图标的解决方法

如图:在src/main/resources目录下创建的文件夹却以包的图标显示  修改方法: 入下图,按顺序1 ,2,3,4操作,把3处remove,在4处添加**  修改后如下:  然后点击完成后,文件夹图标显示正常了