Linux中误删文件的恢复方法

做为Linux的从业者大家对"rm -rf"这个命令肯定又爱又恨。

他的简洁霸气,势不可挡,可谓"十步杀一人,千里不留行",

他干净彻底,不留痕迹,狠狠按下回车键后,“事了拂衣去,深藏功与名”。

但是,这个世界总是遗憾常有,而后悔药不常有,删错后多半会呆呆地盯着屏幕,莫名奇妙地会"哀吾生之须臾,羡长江之无穷"。

今天小编就给大家介绍的就是一款好用的"后悔药"——extundelete

准备工作

下载安装包:http://extundelete.sourceforge.net/

环境准备:

[root@lh 1]# yum -y install e2fsprogs-libs e2fsprogs e2fsprogs-devel
[root@lh 1]# rpm -q e2fsprogs-libs e2fsprogs e2fsprogs-devel

安装extundelete:

[root@lh 1]# tar jxvf extundelete-0.2.4.tar.bz2
[root@lh 1]# cd extundelete-0.2.4
[root@lh extundelete-0.2.4]# ./configure && make && make install 

制造车祸现场

注:如果您已经误删了文件请跳过此章

格式化一个分区

[root@lh 1]# mkfs.ext4 /dev/sdc1

挂载并制造一些文件

[root@lh 1]# mkdir /diskc
[root@lh 1]# mount /dev/sdc1 /diskc
[root@lh 1]# cd /diskc
[root@lh diskc]# cp /etc/passwd ./
[root@lh diskc]# cp /bin/ls ./
[root@lh diskc]# mkdir mlryj
[root@lh diskc]# echo "Welcome to 麻辣软硬件" > mlryj/1.txt

查看制造文件的md5值

[root@lh diskc]# md5sum passwd ls mlryj/1.txt
4b2c3e7fb5baf6f98307068d9c337620  passwd
c75a745aeabe3449655f2e7d3b081791  ls
dd69abb0cab322377ac06f6648f9ec8a  mlryj/1.txt

查看文件详情

[root@lh diskc]# ll
总用量 140
drwx------ 2 root root  16384 3月  14 17:40 lost+found
-rwxr-xr-x 1 root root 117024 3月  14 17:43 ls
drwxr-xr-x 2 root root   4096 3月  14 17:43 mlryj
-rw-r--r-- 1 root root   1935 3月  14 17:43 passwd

删除所有文件

[root@lh diskc]# rm -rf *

##找回被删除的文件
###取消挂载

[root@lh 1]# umount /diskc

###可用的命令

此时使用如下三个命令:

1.查看可以恢复哪些文件:

extundelete /dev/sdc1 --inode 2

2.恢复某文件:

extundelete /dev/sdc1 --restore-file somefile

3.恢复某目录:

extundelete /dev/sdc1 --restore-directory /somedir

4.恢复所有文件:

extundelete /dev/sdc1 --restore-all

命令执行后恢复后的文件存储在当前文件夹下的RECOVERED_FILES目录中
###文件恢复及验证

恢复单个文件和目录就不再赘述了,我们直接恢复所有文件

[root@lh 1]# extundelete /dev/sdc1 --restore-all
NOTICE: Extended attributes are not restored.
Loading filesystem metadata ... 64 groups loaded.
Loading journal descriptors ... 55 descriptors loaded.
Searching for recoverable inodes in directory / ...
5 recoverable inodes found.
Looking through the directory structure for deleted files ...
0 recoverable inodes still lost.
[root@lh 1]# ls
RECOVERED_FILES

查看文件是否成功找回

[root@lh 1]# cd RECOVERED_FILES/
[root@lh RECOVERED_FILES]# ls -l
总用量 124
-rw-r--r-- 1 root root 117024 3月  14 17:49 ls
drwxr-xr-x 2 root root   4096 3月  14 17:49 mlryj
-rw-r--r-- 1 root root   1935 3月  14 17:49 passwd
[root@lh RECOVERED_FILES]# md5sum passwd ls mlryj/1.txt
4b2c3e7fb5baf6f98307068d9c337620  passwd
c75a745aeabe3449655f2e7d3b081791  ls
dd69abb0cab322377ac06f6648f9ec8a  mlryj/1.txt
[root@lh RECOVERED_FILES]# cat mlryj/1.txt
Welcome to 麻辣软硬件

我们可以看到,文件的md5值和内容都没有变化,恢复很成功了。
但是,虽然有此利器,我们使用"rm -rf"时,脑袋还是要谨慎一些,不要冒无谓的风险。至少从现在看:
只是目录的"总用量"和恢复的文件权限发生了变化。

Linux中误删文件的恢复方法相关推荐

  1. linux中MySQL密码的恢复方法

    MySQL密码的恢复方法之一 1.首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库. 因为在重新设置MySQL的root密码的期间,MySQL数据库完全出于没有密码保护的 状态 ...

  2. linux文件被覆盖如何恢复_在Linux下误删文件后恢复

    1.给虚拟主机添加一块磁盘,磁盘为/dev/sdb,如下: 2.格式化磁盘,并进行挂载 # mkfs.ext4 /dev/sdb # mkdir /usr/local/dbdata/ # mount ...

  3. SVN覆盖本地文件和误删文件的恢复方法

    前言:之前自己写了好几天的代码,一直手懒没往SVN上提交,然后不小心覆盖了本地的代码,几天的代码都不见了,下面就说一下本地被SVN覆盖的代码如何找回来(我使用的是Eclipse). 一.情景一: 你写 ...

  4. Linux中sh文件的执行方法

    1.切换到.sh脚本所在的目录,执行.sh脚本: [root@nhost21 mnt]# ls 111.py daytime.csv hdfs_python.py Rplots.pdf test.py ...

  5. linux中rm删除的文件是否可以恢复,Linux下用rm删除的文件的恢复方法

    Linux下用rm删除的文件的恢复方法_Linux教程_Linux公社-Linux系统门户网站 https://www.linuxidc.com/Linux/2008-08/14744.htm lin ...

  6. 误删了php文件怎么恢复,linux中误删了文件怎么恢复

    linux中误删了文件怎么恢复 作为一个多用户.多任务的操作系统,Linux下的文件一旦被删除,是难以恢复的.尽管删除命令只是在文件节点中作删除标记,并不真正清除文件内容,但是其他用户和一些有写盘动作 ...

  7. Linux内核中读写文件数据的方法

    Linux内核中读写文件数据的方法     有时候需要在Linuxkernel--大多是在需要调试的驱动程序--中读写文件数据.在kernel中操作文件没有标准库可用,需要利用kernel的一些函数, ...

  8. linux命令删除的文件怎么找回来,linux误删文件怎么恢复 linux误删命令行文件怎么恢复...

    linux误删文件怎么恢复 linux误删命令行文件怎么恢复 linux系统是不同于windows系统和mac系统的,它独特的系统操作深受广大网友喜爱.有的朋友在使用linux系统的时候,不小心把一些 ...

  9. u盘误删文件怎样恢复?解决方法

    u盘误删文件怎样恢复?u盘这种移动存储设备,使用携带操作都相对方便.经常用于存放一些重要的或备份的文件.但意外经常在不经意间发生,比如说因为自己的失误,误删了u盘里的文件.遇到这种意外事情该怎么办呢? ...

最新文章

  1. Linux日常运维--6
  2. linux设置数据库定时备份,linux中使用计划任务进行数据库定期备份
  3. Glide DiskCache 原理分析
  4. cxgrid主从表 点+号展开_深入理解Redis主从复制
  5. python 字典取值加引号创建一个对象_Python在添加到字典时从列表项中删除单引号...
  6. shell 脚本编程之for语句、if语句(2 )
  7. leetcode1414. 和为 K 的最少斐波那契数字数目(贪心算法)
  8. Java/JSP中使用JDBC连接SQL Server 2000/2005
  9. 在Linux系统中允许或拒绝SSH访问特定用户或组的方法
  10. idea报错:Invalid bound statement (not found)
  11. c 打印二叉树_树、二叉树、二叉查找树(二叉搜索树)
  12. 这可能不只是一篇面经(BAT面试)
  13. Hadoop版本比较
  14. css如何使图片在右下角,这个右下角折角用css怎么画出来?
  15. CRMEB多商户1.7.1版本功能更新预告 预计12月更新
  16. 潜意识幻想-思维幻觉-昏迷中的加速思考
  17. 使用BootStrap.编写网页
  18. hids Elastic Security 系列1-Elastic Security介绍
  19. 工大SCIR | 文本摘要简述
  20. 淮阴工学院计算机科学讲师,淮阴工学院计算机与软件工程学院统战人士工作业绩...

热门文章

  1. 主机服务器安全策略(一):账户口令安全
  2. 【测试】抓包技术哪家强?关于Burp、Fiddler、Charles三个工具的抓包测试
  3. CNN-台大李宏毅学习笔记
  4. 什么是OTDR光时域反射仪,以及其基本工作原理
  5. IC讲解: 如何区分CP测试和FT测试
  6. 个人网站搭建之服务器环境搭建
  7. 编写函数:笛卡尔坐标系(Append Code)
  8. QuickBI 使用记录
  9. QOpenGLWidget运行时闪退
  10. 溢出漏洞,缓冲区溢出漏洞