误删过程
今天在/usr/bin目录下用ls -l 指令查看文件的时候发现有一些文件被标红了,于是我用鼠标去目录下找到一个打了叉的文件(好像是python3,一个软连),试图打开的时候提示:“该文件指向的目录错误不存在(记忆中是这个意思)”,于是我断定这些标红的文件应该都是出错的软链!,然后我把他们 一 一 删除了!用的sudo rm -rf !!!,我都想打我自己
一共删除了5个文件:
后来直接重启之后发现系统有些快捷键(ctr+alt+T)不能用了,更新也显示在检查更新的时候错误,python3 --version也找不到。
我去网上找了一些恢复文件的方法,比如说extundelete,但是没有用!枯了。。我的Ubuntu完美系统没了,一天一个小惊喜www。
解决方法
考虑过remove掉python3,但是网上说不建议这样做,所以我打算简单把缺失的文件找回来。我舍友帮了大忙,我在他电脑装了一个VMWare虚拟机,然后装了个Ubuntu20.04,装好之后,从/usr/bin/下取文件:
- 查看完整系统下的python*信息:
$ cd /usr/bin/
$ ls python*
# 结果
python2 python3 python3.8-config python3-futurize
python2.7 python3.8 python3-config python3-pasteurize
这里似乎没有我删除的python,python~,python3,python3.8~,倒是有一个python3.8,我想缺失的文件大概就是python3.8,于是我把它cp到桌面上打包,通过QQ邮箱发了过来。
- 把文件解压,拷贝到/usr/bin/目录下:
sudo mv python3.8 /usr/bin/
这个时候文件还是无法执行的,键入python3.8 --version也会报错,权限的问题,通过图形界面右键/属性/,把文件改成允许作为程序执行,然后修改修改目录的所有者和群组
为root:
chown -R root:root python3.8
- 软连:
这里要补上两个软连,python3和python
sudo ln -s /usr/bin/python3.8 /usr/bin/python3
sudo ln -s /usr/bin/python3 /usr/bin/python
至于python~,python3.8~,这是什么东西??我查了一下:
这些文件其实是备份文件,是我们对文件进行修改以后系统自动生成的,和windows底下的-bak文件相似。vim也有这个生成备份文件的功能,可以通过编辑.vimrc加入set nobackup来取消备份功能,但是不建议这么干,毕竟备份的文件会自动删除(重启电脑),在不正常关闭的时候备份也很重要,实在没用可以手动删掉。
终于好了
reboot 重启一下,然后终端快捷键能用了,软件更新也提示可用,快速更新一下,就ok了,我魂儿都丢了。看来rm -rf
这条指令还是要慎用,慎用,慎用!虽然已经尝试过了sudo rm -rf /*
,但是就是不长记性啊,建议使用这条指令的时候,带上-i选项,提示一下: