由于自己手残,删除了自己写了好久的一个项目main.c文件。当时我那个难受啊,但是后来自己百度,查看博客,终于找到了一个好的办法恢复因自己手残而删除的重要文件。

  • ubuntu恢复已删除的文件软件

extundelete

  • 安装方法

sudo apt-get install extundelete
  • 使用方法

我们可以使用extundelete --help ,来查看该软件的使用参数及其使用方法。

Usage: extundelete [options] [--] device-file
Options:--version, -[vV]       Print version and exit successfully.--help,                Print this help and exit successfully.--superblock           Print contents of superblock in addition to the rest.If no action is specified then this option is implied.--journal              Show content of journal.--after dtime          Only process entries deleted on or after 'dtime'.--before dtime         Only process entries deleted before 'dtime'.
Actions:--inode ino            Show info on inode 'ino'.--block blk            Show info on block 'blk'.--restore-inode ino[,ino,...]Restore the file(s) with known inode number 'ino'.The restored files are created in ./RESTORED_FILESwith their inode number as extension (ie, file.12345).--restore-file 'path'  Will restore file 'path'. 'path' is relative to rootof the partition and does not start with a '/' (itmust be one of the paths returned by --dump-names).The restored file is created in the currentdirectory as 'RECOVERED_FILES/path'.--restore-files 'path' Will restore files which are listed in the file 'path'.Each filename should be in the same format as an optionto --restore-file, and there should be one per line.--output-dir 'path'    Restore files in the output dir 'path'.By default the restored files are created under current directory 'RECOVERED_FILES'.--restore-all          Attempts to restore everything.-j journal             Reads an external journal from the named file.-b blocknumber         Uses the backup superblock at blocknumber when openingthe file system.-B blocksize           Uses blocksize as the block size when opening the filesystem.  The number should be the number of bytes.

我们知道当我们不小心删除了有用的文件,我们一般是比较容易知道删除的时间的,因此,使用时间这个option可以很快并且精确的恢复出我们想要的文件。那这个dtime怎么生成。请参考如下命令:

date       //查看一当前时间
date -d "2020-5-4 17:55:33" +%s  //生成dtime的索引

  • 恢复命令

    首先需要生成dtime 的索引

    date       //查看一当前时间
    date -d "2020-5-4 17:55:33" +%s  //生成dtime的索引

    sudo extundelete /dev/sda1 --after 1588586319--restore-all

    注:/dev/sda1中sda的选择可能会有不同,自己可以一个一个试,我的sda1是可以的。

恢复完之后,系统会在你所在的当前目录下生成一个RECOVERED_FILES 的文件,那个文件里面会存放你所删除的文件及其他们所在的路径。

然后我们只需要将我们所需要的文件或文件夹拷贝出来就ok了。

  • extundelete原理

由于 在linux系统中,超级块描述了分区的信息,一个分区被分为两个部分,索引节点表和数据块区,这个在格式化的时候就定下来了。文件(目录也是文件的一种,只不过它的内容是描述目录下的文件的)由索引节点描述,索引节点描述了文件的修改时间,文件的名称,文件的数据块地址等等。并且,linux对于文件删除操作是个懒动作,删除文件时系统只是将文件对应的索引节点及其拥有的数据块置为free(将nlink=0),而并没有做其他清空的,只有当这个索引节点或者数据块被真正用到的时候才会修改里面的数据。这就为我们文件修复提供了可趁之机。由于系统中的索引节点是固定大小的,因此可以很轻松的遍历扫描系统中所有的索引节点,找出free的索引节点并检查其数据块是否已经被用,如果没有则可修复并修复。同时,由于索引节点里的时间等信息也是保留的,因此就可以根据时间来恢复特定的被删除的文件。

文件误删除后的注意事项
     从上面的分析可知,误删文件后,尽量不要做大的数据操作,以避免被删除的文件的数据块被重新使用,导致数据完全丢失。

Ubuntu如何简单粗暴的恢复被删除的文件相关推荐

  1. 2个简单易用的方法解决:Win10如何恢复回收站删除的文件

    我们知道,Windows10的回收站主要是用于存放临时删除的文件(不包括大文件),以便电脑用户可以很好地管理各个磁盘的资料.同时,回收站也给了一个缓冲区,以免使用者在删除电脑资料之后,还需要复原回来. ...

  2. photorec_如何在Linux / Ubuntu中使用PhotoRec恢复已删除的文件

    photorec Accidentally deleted files or photos? In this tutorial, we'll learn how to recover deleted ...

  3. 如何恢复已删除的文件?5分钟搞定的简单方法。

    本文介绍如何使用文件恢复程序恢复已删除的文件.它包括与恢复已删除文件相关的提示. 如何恢复已删除的文件 从硬盘驱动器恢复已删除的文件并不是一件疯狂的事情,但一旦您意识到文件已被删除,就尝试恢复会有所帮 ...

  4. linux下删除的文件怎么恢复出厂设置,如何在Linux中恢复已删除的文件(机器翻译)...

    如果您在Linux中不小心删除了一个文件,不要担心,只要该区域的磁盘尚未被覆盖,您可能仍然可以恢复它.这篇文章将告诉你如何在Linux中轻松恢复被删除的文件. Foremost能够搜索磁盘或原始图像文 ...

  5. 在Git存储库中查找并恢复已删除的文件

    假设我在Git存储库中. 我删除文件并提交更改. 我继续工作并做出更多承诺. 然后,我发现需要还原该文件. 我知道我可以使用git checkout HEAD^ foo.bar来签出文件,但是我真的不 ...

  6. 如何在前端删除项目中的文件_如何在macOS上恢复已删除的文件

    有时候不小心删除了我们不打算删除的MacBook上的文件.在MacBook上恢复永久删除的文件非常困难,但这并非不可能.在本文中,我们将指导您如何恢复MacBook上最近恢复的文件或永久删除的文件.从 ...

  7. 如何恢复手机删除数据文件

    如何恢复手机删除数据文件 随着现在手机功能的不断增强,人们对电脑的依赖性有所下降,不知道有多少朋友跟我一样.下班回家,都不会打开电脑,要想娱乐一下,一个手机和一个舒服的沙发就够了.再开电脑根本就是浪费 ...

  8. 数据恢复软件如何恢复电脑删除的文件

    数据恢复软件如何恢复电脑删除的文件?当我们长时间使用电脑后,电脑会产生很多缓存文件,运行速度也会受到影响,清理电脑垃圾文件是大家经常操作的事情. 可是,一些用户删除电脑文件的时候不小心把重要的文件和垃 ...

  9. 怎么恢复电脑删除的文件,误删除数据恢复

    怎么恢复电脑删除的文件?删除,其实是很简单的一种操作.当我们需要将某个文件删除时,系统只是在文件分配表内在该文件前面写一个删除标志,表示该文件已被删除,他所占用的空间已被"释放", ...

  10. 不小心把java文件删除了_如何使用Java恢复已删除的文件?

    小编典典 要恢复已删除的文件,需要了解底层文件系统的实现方式,因此您需要做一些阅读工作,然后才能到达任何地方. 从理论上讲,是的,您绝对可以使用纯Java来做到这一点.您只需要了解如何绕过文件系统从原 ...

最新文章

  1. system volume information怎么删除_文件系统怎么让Linux内核认识自己
  2. System.currentTimeMillis()用法及其计算方式与时间的单位转换
  3. 如何订阅MQTT服务器历史消息,mqtt集群订阅如何只消费一个(一次)消息?
  4. U5398 改数(num)
  5. winCE改变字库方法(WINCE字库更新)
  6. 生成jsp验证码的代码详解(servlet版)
  7. SkyEye——汽车电子系统仿真测试工具
  8. 【AI视野·今日CV 计算机视觉论文速览 第211期】Wed, 2 Jun 2021
  9. python的作者叫什么_作者的来历是什么?
  10. Disable IE7 address bar:不显示IE地址栏
  11. linux硬链接符号,Linux — 硬链接与符号链接
  12. 视频教程-CCNA魔鬼训练营-思科认证
  13. 32位CPU最多支持4G内存是怎么算出来的?(解惑篇)
  14. VC++ 操作Word(使用微软office控件)
  15. Centos6.7安装VBoxLinuxAdditions
  16. 计算机语言中print是什么意思,PASCAL 语言中print是什么意思?
  17. 如何在两台服务器之间传输文件
  18. 三国志战略版360区S4服务器合并信息,三国志战略版赛季区别 三国志战略版S4赛季与各赛季之间的区别_游侠手游...
  19. 第二组 通信1班 180 林欣怡 抓包分析
  20. java避免出现科学计数法表示_Java中的浮点数-科学计数法-加减乘除

热门文章

  1. .NET框架设计(1)
  2. 回溯算法高效解标准数独(MarkDown)
  3. Frida cmd常用命令
  4. QQ分享功能实现-Android
  5. 运动步数抽奖小程序开发
  6. 硬件之家 | 智能手环、手表是如何监测睡眠的
  7. 如何修复图片清晰度呢?这三款软件不要错过
  8. sketch 3.8.1(破解版涵盖3.0,3.7,3.8.0以上版本) 安装and使用指南(20160524)更新)
  9. Windows服务器提示密码过期怎么办?服务器密码过期会怎么样?
  10. 关于多目标跟踪的一点理解