Ubuntu中恢复rm命令误删文件(转)

计算机系统:Ubuntu 16.04

1 背景

在做项目的时候,本来想使用rm命令删除以14开头的文件,结果写成如下形式:

  1. rm14*

注意,本来14和*之间不应该有空格的,但是误写了一个空格,结果导致所有文件都被删除了!为了找回被误删的文件,根据网上的一些资料进行探索。

2 ext3grep

  1. sudoapt-getinstallext3grep

参考资料[4]中对这个工具的使用有比较详细的说明过程。然而,正如参考资料[5]所言,这个工具只适合于ext3文件系统的,而新版本的Ubuntu系统一般都使用ext4文件系统,因此需要使用其它工具,如extundelete

3 extundelete

  1. sudoapt-getinstallextundelete

使用这个工具,我成功的恢复了使用rm命令误删的文件。关于这个工具的使用方法,可见参考资料[7]。下面简单记录一下回复过程。

  1. sudoextundelete/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