Linux下通过grep命令恢复被删文件的内容
March 26, 2018
我们之前已经介绍了在linux下通过构建一个类似于windows的回收站来恢复被删除的文件。 今天我们再来介绍一个通过grep命令来恢复被删除文件的内容的方法。 我们都知道,当linux的删除命令rm执行删除文件操作后,文件数据并没有从磁盘存储上移除,所以只要文件内容没有被覆盖掉,文件内容依然有被恢复的可能性。
因为linux下一切数据皆以文件的形式存放,依旧是说磁盘设备也是以文件的形式存在。所以我们可以通过grep命令来过滤查找出我们删除文件的内容,并将其重定向到另一个文件里,这也也就能达到恢复文件的目的。
1# 确定根目录所在的磁盘
执行命令:
#mount | grep sda
命令输出如下:
root@devops:~/osetc# mount | grep sda /dev/sda1 on / type ext4 (rw,relatime,errors=remount-ro,data=ordered)
2# 删除文件
执行rm命令:
#rm fio.txt
命令输出如下:
root@devops:~/osetc# cat fio.txt delete line 1 delete line 2 delete line 3 delte line 4 delete line 5 root@devops:~/osetc# rm fio.txt
3# 通过grep命令恢复被删除文件fio.txt 的内容到recovery.txt里
执行下面命令:
#grep -a -B 10 -A 10 'delete line 1' /dev/sda1 >recovery.txt
参数介绍:
-a 将二进制文件作为普通文件看待
-B, –before-content 过滤出指定模式串之前的特定数目的行
-A, –after-content 过滤出指定模式匹配之后的特定数目的行
99%的人还阅读了:
0 Comments