0 前言
用rm命令多了,难免会出现误删文件的情况,本人就在Ubuntu14.04中做项目时遇到该问题,本来想使用rm命令删除以14开头的文件,结果写成如下形式,导致文件被误删:
rm 14 * # “14”和“*”误增了一个空格
1 工具
ext3和ext4文件系统需要分别使用不同的工具来进行文件恢复。
1.1 ext3
sudo apt-get install ext3grep
参考资料[4]中对这个工具的使用有比较详细的说明过程。然而,正如参考资料[5]所言,这个工具只适合于ext3文件系统的。
1.2 ext4
sudo apt-get install extundelete
该工具适用于文件系统ext4。关于这个工具的使用方法,可见参考资料[7]。
2 恢复
本文用上述extundelete工具成功的恢复了使用rm命令误删的文件,命令如下:
sudo extundelete /dev/sda1 --restore-all
说明:“/dev/sda1”是误删文件所在的分区。我的误删的文件原来在“/home/liyihai”里面的子目录中,而这个目录挂载于“/dev/sda1”分区(使用df -h命令查看)。
执行上面命令后,会在当前目录中生成一个名为RECOVERED_FILES目录,并且将恢复的文件放到这个目录中。
根据参考资料[7]的说明,所恢复的文件会被改名,因此需要根据文件的内容,使用grep命令找出您想要的文件。
参考资料
[1]linux下如何恢复rm命令删除的文件
[2]linux rm文件恢复总结
[3]Linux使用笔记: 实用ext3grep恢复目录及文件指南(ext3文件系统)
[4]ubuntu中用ext3grep恢复ext3文件系统中误删的文件
[5]问题:如何在 ext4 分区下恢复删除的文件
[6]Linux下数据误删除不再是恐怖的事情,ext3grep帮你恢复
[7]ext4分区中恢复被删除的文件
[8]恢复Linux ext4分区上误删除的文件
[9]【Linux】Linux系统 ext4格式 删除文件恢复:extundelete
[10]ubuntu rm 恢复