误执行带空格的rm命令导致账户数据全部丢失,求助恢复方法
误执行带空格的rm命令导致账户数据全部丢失,求助恢复方法
我原本想解决Skype无法识别耳机麦克风的问题,按照某网站上的解决方案执行了以下操作:
rm -rf ~/.config/pulse/ Log out Log back in go to desktop settings/'sound' insert headphones Go to 'input' section Do microphone audio test on each available device但重新登录后,我账户里的所有数据和自定义设置(包括安装的额外程序)都不见了!我没有登录来宾账户,用的就是自己的账户,但现在完全像新用户一样。请问有没有办法恢复这些数据?
更新:
我实际输入的命令是:rm -rf ~/ .config/pulse/在
~/后面多了一个空格,但~和/之间没有空格,这是不是问题所在?
别慌,先给你把问题点透:你输入的命令里,~/后面的空格是致命错误!系统会把这个命令解析成删除你的整个主目录(~/),同时删除当前目录下的.config/pulse/文件夹——这就是为什么你登录后账户像全新的一样,主目录里的所有数据、设置、安装的程序配置全没了。
现在要立刻做这些事,绝对不要再往这个系统里写入任何新数据(比如保存文件、安装软件、甚至浏览网页缓存),否则被删除的数据会被覆盖,彻底无法恢复:
- 马上退出当前账户,切换到纯命令行终端(按
Ctrl+Alt+F3,不同发行版可能是F2到F6中的某一个),用root账户或者其他有sudo权限的账户登录。 - 最好把你的硬盘拆下来,接到另一台Linux机器上作为从盘挂载,或者直接停止挂载你的主目录分区(用
sudo umount /home/你的用户名),这样能最大程度避免系统自动写入数据覆盖被删除的文件。 - 用数据恢复工具扫描分区,最推荐的是
photorec(属于testdisk工具集):- 如果还能在当前系统操作,先安装工具:
sudo apt install testdisk(Debian/Ubuntu系),如果是Fedora/RHEL系用sudo dnf install testdisk。 - 运行
sudo photorec,按照界面提示选择你的主目录所在的分区,然后选择要恢复的文件类型,最后指定一个非原分区的位置(比如外接U盘)来保存恢复的文件,绝对不能存在原主目录里!
- 如果还能在当前系统操作,先安装工具:
- 要是你对命令行工具不太熟悉,也可以用
testdisk的图形化界面,或者把硬盘接到Windows机器上用Recuva这类工具扫描,但Linux原生工具对ext4等Linux文件系统的支持更好。
最后给你提个醒:以后执行rm -rf这种高危命令前,一定要先用echo预览一下要删除的路径,比如echo rm -rf ~/.config/pulse/,确认路径完全正确再执行,避免手滑出这种致命错误。
备注:内容来源于stack exchange,提问作者Bea
相关产品推荐
相关产品推荐

