linux找回rm的文件夹,Linux rm 文件恢复
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 文件恢复相关推荐
- linux 删除中文文件夹,Linux删除文件夹命令是什么
Linux删除文件夹命令有:1.rmdir命令,用于删除空的文件夹,语法格式"rmdir [-p] 文件夹名称":2.rm命令,用于删除一个文件或者文件夹,语法格式"rm ...
- linux+n天没有访问文件夹,linux文件目录与管理
l绝对路径:路径的写法一定由根目录/写起,例如/usr/share/doc这个目录 l相对路径:路径的写法不是由/写起,例如由:/usr/share/doc要到/usr/share/man下面时,可以 ...
- linux 删除文件夹中所有文件命令行,Linux中使用命令行删除文件夹
使用rm -rf 目录名字 命令便可html -r 就是向下递归,无论有多少级目录,一并删除 -f 就是直接强行删除,不做任何提示的意思linux eg:post 删除文件夹实例:rm -rf /va ...
- linux查询所建文件夹,linux中的文件和文件夹的新建、查询、删除
新建文件夹 使用的mkdir命令可以新建文件夹. mkdir filename 这样就创建了一个叫做filename文件夹. 新建一个文件 新建的文件可以包括任何扩展名,.txt/.cpp/.csv ...
- linux 打开php服务器文件夹,Linux下如何查看文件和文件夹大小
<Linux下如何查看文件和文件夹大小>要点: 本文介绍了Linux下如何查看文件和文件夹大小,希望对您有用.如果有疑问,可以联系我们. 相关主题:服务器配置 1 Linux下查看文件和文 ...
- Linux批量复制文件夹里的文件到另一个文件夹(问题:linux sh: /bin/cp: Argument list too long )
cp -Rf 原文件夹路径 目标文件夹路径 例子: cp -Rf /home/src/* /home/tar/ 原文件夹路径:/home/src/* (加上 * 表示 /home/src/下的所有文件 ...
- linux ruby 删除文件,ruby 删除文件夹(包括文件夹中的文件夹和文件)
php 得到一个文件夹下的所有文件,包括子文件中的文件 $dir = FCPATH."uploads/attachment/"; $this->getFiles($dir); ...
- linux用sz下载文件夹,linux上很方便的上传下载文件工具rz和sz使用介绍
一般来说,linux服务器大多是通过ssh客户端来进行远程的登陆和管理的,使用ssh登陆linux主机以后,如何能够快速的和本地机器进行文件的交互呢,也就是上传和下载文件到服务器和本地: 与ssh有关 ...
- linux scp 过滤文件夹,linux中使用scp远程拷贝文件及文件夹
linux中使用scp远程拷贝文件及文件夹 linux scp远程拷贝文件及文件夹,需要的朋友可以参考下 1.拷贝本机/home/wtf/test整个目录至远程主机192.168.100.1的/roo ...
- linux如何用终端删除文件夹,linux删除文件夹命令
在Linux系统中没有回收站,因此我们要删除文件夹的时候需要注意,下面由学习啦小编为大家整理了linux删除文件夹命令,希望对大家有帮助! linux删除文件夹命令详解 一.rm命令使用权限 所有用户 ...
最新文章
- 2020 AI产业图谱启动,勾勒中国AI技术与行业生态
- Python使用matplotlib可视化两个时间序列的交叉相关性图、交叉相关图显示了两个时间序列之间的滞后性(Cross Correlation plot)
- 日子过得真快,转眼就工作了4个月了
- php+node+redis,redis,nodejs,php,pub/sub 实战: 微信语音识别
- git 创建webpack项目_Webpack入门:从安装到配置
- hive 2.3 mysql_Note23:Hive-2.3.6安装配置
- 程序员想找工作怎么办?如果记住这一点,不怕找不到好工作!
- JS 进阶知识点及常考面试题
- 测试流程图_入职两年银行测试员经验总结:我是如何帮人们“避雷”的?
- python自动化办公入门书籍-Python自动化办公实战教程2020最新带源码
- bzoj 1124: [POI2008]枪战Maf(贪心)
- DSP28335 Flash烧写
- 推荐一些逐步深入学习mysql的书籍
- 写Python爬虫又被屏蔽了,你现在需要一个稳定的代理IP
- 追寻本质还是流于形式
- AngularJS 事件
- Predicting Semantic Map Representations from Images using Pyramid Occupancy Networks 翻译
- 【19】processing-硬件(中文)
- LINUX入门——Linux是什么?
- windows 离线安装nessus