Linux rm 命令误删文件的恢复(grep)

作者:袖梨 2022-11-14


利用extundelete插件


假设被删除的文件位于 /media/backup 里,挂载的设备是 /dev/sda3。

首先重新挂载当前磁盘。

然后安装 extundelete 依赖的包,

代码如下 复制代码

sudo aptitude install e2fsprogs e2fslibs-dev

下载 extundelete ,
解压 extundelete,
运行

三大步

代码如下 复制代码

./configure
make
sudo make install

可以 extundelete --help 看下用法,或者直接全部恢复 extundelete /dev/sda3 --restore-all注意,恢复后的文件默认位于安装这个软件文件夹的 RECOVERED_FILES 里。

实例

grep恢复删除文件

先临时建一个文本文件 vpsee.log 做测试,然后删除这个文件:

代码如下 复制代码

$ echo "important log file for vpsee.com" > vpsee.log

$ cat vpsee.log
important log file for vpsee.com

$ rm vpsee.log

如果能记住刚才删除文件中的某个关键字的话可以用 grep 搜索整个 /dev/sda1,-a 标志位的意思是把 /dev/sda1 这个分区看成是文本形式的(分区本身是二进制形式的),-B 10 -A 100 的意思是如果找到关键字就打印出其前10行和后100行的内容:

代码如下 复制代码

# grep -a -B 10 -A 100 'vpsee.com' /dev/sda1 > tmp.txt

在一堆 @ 之间可以找到我们刚才删除的内容:

代码如下 复制代码

$ vi tmp.txt
...
@$^@^@^@^@^@^@^@^@^@^@^@^A^@^@^@^@^@^@^@?^@^@^@^A^@^@^@^@^@^@^@^@^@^@^@è^K^@^@^@
^@^@^@^@^@^@^@^@^@^@^@^A^@^@^@^@^@^@^@^Q^@^@^@^C^@^@^@^@^@^@^@^@^@^@^@è^K^@^@×^@
^@^@important log file for vpsee.com
@
@
...

当然,如果误删了二进制、doc、png/jpg/gif 之类的文件,可以用一些第三方 ext2/ext3 文件恢复工具帮助恢复文件,比如 TestDisk, PhotoRec 等。

相关文章

精彩推荐