Linux下删除命令 rm 大家肯定是熟悉得不能再熟悉了,然后有时候却阴沟里翻船不小心删除了某些重要的文件,想死的心都有了。。。。现在我们就来看看被误删除的文件要如何恢复?

Linux文件系统

Linux的文件系统(如ext3、ext4)由三部分组成:inode,data block,super block。Super block:记录此文件系统的整体信息,包括inode/block的总量、使用量、剩余量,以及文件系统的格式和相关信息;

inode:记录 文件的属性,一个文件占用一个inode,同时记录此文件的数据所在的block号码;

block:实际记录文件的内容,如果文件比较大,会占用多个block;

每个inode和block都有编号,而每个文件都占用一个inode,inode内则有文件数据对应的block号码。因此,如果找到了文件的inode,自然就可以读取到文件的数据内容了。

当我们将一个文件删除时,Linux并非真实地删除磁盘里的数据,而是将文件的inode节点对于对应的扇区指针清除,同时释放这些数据对应的block,只有但这些block被系统重新分配时,那些被删除的数据才会被覆盖,最终无法恢复。

因为当我们误删数据时,应立刻卸载所在的文件系统,然后进行恢复。

Default

$ umount /dev/partition

$ mount -o remount,ro /dev/partition

1

2$umount/dev/partition

$mount-oremount,ro/dev/partition

grep

通过grep命令我们可以简单地进行文件恢复:

Default

grep -a -B 50 -A 60 'some string in the file' /dev/sda1 > results.txt

1grep-a-B50-A60'some string in the file'/dev/sda1>results.txt

说明:

Default

-a:把二进制文件当作文本文件

-A,-B:字符串的后几行和前几行

1

2-a:把二进制文件当作文本文件

-A,-B:字符串的后几行和前几行

不过grep命令比较麻烦的是,必须记得文件中的部分内容,而且如果有相同的其它文件也会被输出到result.txt,结果比较混乱;同时,由于是整个分区扫描,时间会比较漫长。

debugfs & extundelete

首先,我们先创建一个文件,然后将其删除:

Default

$ cat /proc/cpuinfo > /tmp/testrm.txt

$ rm /tmp/testrm.txt

1

2$cat/proc/cpuinfo>/tmp/testrm.txt

$rm/tmp/testrm.txt

使用系统自带的 debugfs 命令:

Default

$ sudo debugfs

debugfs: open /dev/sda2

debugfs: ls -d /tmp

1

2

3$sudodebugfs

debugfs:open/dev/sda2

debugfs:ls-d/tmp

可以看到被删除的文件testrm.txt,其中的<657573>就是文件的inode编号:

Default

……

<657573> (92) testrm.txt

……

1

2

3……

<657573>(92)testrm.txt

……

使用extundelete进行恢复:

Default

$ extundelete /dev/sda2 --restore-inode 657573

1$extundelete/dev/sda2--restore-inode657573

然后我们就可以在当前目录下的RECOVERED_FILES 目录看到恢复的文件了

Default

$ ls -al RECOVERED_FILES

-rw-r--r-- 1 root root 4.0K 7月 3 15:01 file.657573

1

2$ls-alRECOVERED_FILES

-rw-r--r--1rootroot4.0K7月315:01file.657573

linux找回rm的文件夹,Linux rm 文件恢复相关推荐

  1. linux 删除中文文件夹,Linux删除文件夹命令是什么

    Linux删除文件夹命令有:1.rmdir命令,用于删除空的文件夹,语法格式"rmdir [-p] 文件夹名称":2.rm命令,用于删除一个文件或者文件夹,语法格式"rm ...

  2. linux+n天没有访问文件夹,linux文件目录与管理

    l绝对路径:路径的写法一定由根目录/写起,例如/usr/share/doc这个目录 l相对路径:路径的写法不是由/写起,例如由:/usr/share/doc要到/usr/share/man下面时,可以 ...

  3. linux 删除文件夹中所有文件命令行,Linux中使用命令行删除文件夹

    使用rm -rf 目录名字 命令便可html -r 就是向下递归,无论有多少级目录,一并删除 -f 就是直接强行删除,不做任何提示的意思linux eg:post 删除文件夹实例:rm -rf /va ...

  4. linux查询所建文件夹,linux中的文件和文件夹的新建、查询、删除

    新建文件夹 使用的mkdir命令可以新建文件夹. mkdir filename 这样就创建了一个叫做filename文件夹. 新建一个文件 新建的文件可以包括任何扩展名,.txt/.cpp/.csv ...

  5. linux 打开php服务器文件夹,Linux下如何查看文件和文件夹大小

    <Linux下如何查看文件和文件夹大小>要点: 本文介绍了Linux下如何查看文件和文件夹大小,希望对您有用.如果有疑问,可以联系我们. 相关主题:服务器配置 1 Linux下查看文件和文 ...

  6. Linux批量复制文件夹里的文件到另一个文件夹(问题:linux sh: /bin/cp: Argument list too long )

    cp -Rf 原文件夹路径 目标文件夹路径 例子: cp -Rf /home/src/* /home/tar/ 原文件夹路径:/home/src/* (加上 * 表示 /home/src/下的所有文件 ...

  7. linux ruby 删除文件,ruby 删除文件夹(包括文件夹中的文件夹和文件)

    php 得到一个文件夹下的所有文件,包括子文件中的文件 $dir = FCPATH."uploads/attachment/"; $this->getFiles($dir); ...

  8. linux用sz下载文件夹,linux上很方便的上传下载文件工具rz和sz使用介绍

    一般来说,linux服务器大多是通过ssh客户端来进行远程的登陆和管理的,使用ssh登陆linux主机以后,如何能够快速的和本地机器进行文件的交互呢,也就是上传和下载文件到服务器和本地: 与ssh有关 ...

  9. linux scp 过滤文件夹,linux中使用scp远程拷贝文件及文件夹

    linux中使用scp远程拷贝文件及文件夹 linux scp远程拷贝文件及文件夹,需要的朋友可以参考下 1.拷贝本机/home/wtf/test整个目录至远程主机192.168.100.1的/roo ...

  10. linux如何用终端删除文件夹,linux删除文件夹命令

    在Linux系统中没有回收站,因此我们要删除文件夹的时候需要注意,下面由学习啦小编为大家整理了linux删除文件夹命令,希望对大家有帮助! linux删除文件夹命令详解 一.rm命令使用权限 所有用户 ...

最新文章

  1. 2020 AI产业图谱启动,勾勒中国AI技术与行业生态
  2. Python使用matplotlib可视化两个时间序列的交叉相关性图、交叉相关图显示了两个时间序列之间的滞后性(Cross Correlation plot)
  3. 日子过得真快,转眼就工作了4个月了
  4. php+node+redis,redis,nodejs,php,pub/sub 实战: 微信语音识别
  5. git 创建webpack项目_Webpack入门:从安装到配置
  6. hive 2.3 mysql_Note23:Hive-2.3.6安装配置
  7. 程序员想找工作怎么办?如果记住这一点,不怕找不到好工作!
  8. JS 进阶知识点及常考面试题
  9. 测试流程图_入职两年银行测试员经验总结:我是如何帮人们“避雷”的?
  10. python自动化办公入门书籍-Python自动化办公实战教程2020最新带源码
  11. bzoj 1124: [POI2008]枪战Maf(贪心)
  12. DSP28335 Flash烧写
  13. 推荐一些逐步深入学习mysql的书籍
  14. 写Python爬虫又被屏蔽了,你现在需要一个稳定的代理IP
  15. 追寻本质还是流于形式
  16. AngularJS 事件
  17. Predicting Semantic Map Representations from Images using Pyramid Occupancy Networks 翻译
  18. 【19】processing-硬件(中文)
  19. LINUX入门——Linux是什么?
  20. windows 离线安装nessus

热门文章

  1. 如何识别交换机的性能优劣?
  2. 【渝粤题库】国家开放大学2021春2786初级西方经济学题目
  3. 渝粤教育 陕西师范大学 《初级微观经济学》作业
  4. php 排序不影响索引,为什么不能通过索引避免排序操作呢??
  5. 面向空天地一体多接入的融合6G网络架构展望
  6. 基于wincc的虚拟电梯设计_一文带你了解西门子整个虚拟调试与仿真软硬件体系...
  7. 描述一下JVM加载class文件的原理机制
  8. Django(三)框架之第二篇
  9. Python关于Threading暂停恢复解决办法
  10. php里的抽象类和接口