导航:首页 > 文件处理 > rmrf的文件夹怎么恢复

rmrf的文件夹怎么恢复

发布时间:2022-11-19 18:00:18

‘壹’ 2020-02-03

到目标目录下:

faste文件格式 :大于号 + 序列名称 后面才是序列

(2)常用操作

小技巧:在命令行界面,可以按ctrl + A 到命令行的开头, CTRL + E 则是到命令行结尾

文件上下翻转和左右翻转 : tac: 文件翻转,第一行变为最后一行,第二行变为倒数第二行; rev 每列反转,第一个字符变为最后一个字符,第二个字符变为倒数第二个字符。

1) 复制文件

2) 移动文件

mv 小技巧 :想给单个文件重命名的时候 ,可以使用 mv old_name new_name 。但是想给多个文件批量命名 可以使用 rename

4)ln(link):给文件建立快捷方式(ln -s filder target )

注意 :在建立软连接时,原文件要使用绝对路径。如果希望软链可以让不同的用户访问,不要使用 ~。 建立软连接,是简化文件访问方式的一个办法。把其它文件夹下的文件链接到当前目录,使用时只需要写文件的名字就可以了,不需要再写长串的目录了

小技巧 :每次输入绝对路径都很麻烦,怎么能简便呢?

pwd : 输出当前所在的目录 ,这地方要注意,要在文件所在目录下

``为键盘 Esc 下第一个按键 (与家目录 ~‘符号同一个键),写在反引号内的命令会被运行,运行结果会放置在反引号所在的位置

5) 删除命令

rm : 删除一个或多个文件和目录,也可以递归删除所有子目录,使用时一定要慎重。 rm 命令删除的文件很难恢复。 rm -rf / * ,千万不要执行这个命令!!!!!

5)文件压缩和文件解压(gzip , gunzip)

小诀窍 :gunzip 可以记为滚zip包,即让zip包混蛋(解压)

6)对fasta格式文件的常用处理

wc(what count ) : 一般使用 wc -l 获取文件行数

grep (对每一行进行模式匹配) : 后跟字符串或正则表达式

但是面对fasta文件末尾,有我们不想要的杂字符怎么办?

6)对序列名的修改

有两种方式:

其一:sed ,是文件内容编辑工具,常用于替换、取得行号等操作。

其二:cut , 更适合于矩阵操作,去除其中的一列或者多列。 由于FASTA 文件中序列里面是没有任何符号的,而如果名字比较长,则可以指定相应分隔符就行cut,这样既处理了名字,又保留了序列。

‘贰’ rm -rf 误删数据,如何进行磁盘数据恢复

在工作中,我们知道一些操作命令危险性很高,如: rm -rf,它会造成数据的误删除。如果万一出现这样情况导致数据误删除时,我们应该如何对数据进行恢复呢?

删除数据的两种场景

通常有两种数据删除的场景是你需要清晰了解的。第 1 个是在执行 rm -rf 删除文件时,该文件正在被进程使用。第 2 个是这个文件并没有被其他进程所使用,而被误删除。本课时我将围绕这两种场景进行讲解并演示。

为什么数据可以恢复

既然我执行了 rm -rf 命令,不就是删除文件了吗,为什么又可以恢复数据呢?首先我来为你介绍一下其原由,对于第 1 种进程正在使用文件的场景,数据可以恢复是由因为 linux 里,每个文件都有 2 个 link 计数器:i_count 和 i_nlink。

i_count 的作用是当一个文件被一个进程引用时,它的数值会加 1,也就是说它记录的是文件被进程引用的次数。i_nlink 的作用则是记录文件产生硬链接的个数。Linux 系统只有在两个数值都清零的时候,文件才被系统认为是删除的。如果我们执行了 rm -rf,却并没有把 i_count 删除,假设此时删除文件有进程在使用,那么它(i_count)数值不为 0。这个时候就是文件看似被删除,但在操作系统还是能便捷的恢复回来。

这就是第 1 种场景删除数据能够被找回的原因(由于 i_count 不为 0)。

第 2 种场景是将没有被进程使用的文件误删除,此时 i_count 和 i_nlink 都为 0。这个时候文件的 inode 连接信息已经被删除了,我们就需要通存放文件的 block 单元,做数据块的数据找回。在系统上我们能看到的文件内容包括:文件名、文件大小、内容,但实际上它的存储依赖两个非常重要的单元,一个是 inode,它用于存放文件的相关元数据,它的元数据里会有一个类似于索引的值,能够索引到后面具体存放数据的 block 单元, block 是一个数据块,用来实际存放数据。我们在删除文件时,其实是把 inode 的链接删除了,但是 block 数据块,并没有删除。

所以这个时候我们依然可以通过分析后端的 block 块,对文件进行恢复。因为 block 块保存着真实的数据,理论上可以作完整的找回数据,不过有一个风险:如果有进程在不断往磁盘写数据时,需要申请新的 block 块,如果操作系统分配已删除文件的 block 块时,那么新的写入数据就会覆盖 block 原来的数据,这时就会造成数据真正丢失的风险。

所以,如果出现这样场景造成数据误删除,需要第一时间 umount 目录所在的磁盘设备。如果没有其他进程在不断地往同一个磁盘块(block)里写数据,那么你的数据理论上还是在 block 块里面,依然可以通过相关分析把数据找回。

这就是我们为什么可以在这两个场景中把数据找回的原因,那么接下来我将讲解如何来恢复数据。我会通过两个案例来进行演示。

案例演示

我们先演示第 1 种场景,第 1 种场景是文件在被进程使用过程中被删除,这种场景该如何去恢复文件呢?

首先我登录到测试环境的机器上,这里开启了两个窗口,第 1 个窗口我登录到了这台服务器上,cd /test 目录下,echo 一个测试文件(我把它命名为 DeleteFile),然后把这个内容("Delete file")重定向到本地的 deletefile.txt。这个时候我的测试文件就已经生成了。接下来我要做的是开启一个进程,让它实时地使用这个文件。

这里我使用 tail 命令,持续地查看并且保持监听并使用这个文件。

接下来在另一个窗口,我同样到/test 目录下,而此时我要执行的是 rm -rf ./deletefile.txt,这样就“彻底”把这个文件删除。接下来我们通过 ls,可以看到本地已经没有这个文件了。

现在我们已经模拟出文件在进程使用过程中被删除的场景,那么接下来我们来演示恢复该文件。

首先需要找到是哪个进程在使用这个文件,我们可以通过 lsof 命令,grep 刚刚删除的文件名称(deltefile.txt),会列出当前使用文件的进程。我们会看到tail 命令正在使用,它(进程)的 pid 是 4701。

接下来我们要根据这条线索去恢复数据。我们知道该进程会有使用的文件句柄,那么我们对该进程的文件句柄目录进行查找,cd 到 /proc/{pid}/fd 目录下(这里 pid 为4701),我们到这个目录下,输入 ls -l 命令,这个时候我们会看到,使用这个文件(/test/deletefile.txt)并且它的文件句柄为 3。

接下来我们要想办法把这个文件进行恢复,输入cp 3 /opt/recovertest/deletefile.txt_bak,这时我就把这 3 个文件做了一个拷贝,实现将数据恢复到 /opt/recovertest/deletefile.txt_bak 文件。

这个时候cd /opt/recovertest/,cat deletefile.txt_bak 看一下里面的内容,可以发现这个文件的内容与刚刚生成的的测试文件内容一致,所以刚刚删除的文件恢复完毕。

接下来我来演示误删数据场景2(在没有进程使用文件的情况下,如何恢复误删的文件)。演示这种场景,保险起见我在本地多挂载了一块 SDB 的独立硬盘设备。

这种情况要如何恢复数据呢?我们需要安装 extundelete 这个工具。登录到我的测试机上,在这个演示场景里,挂载一块独立硬盘设备 /dev/sdb 并作数据格式化。完成格式化后。把单独的 sdb 设备,挂载到 test 目录下(mount /dev/sdb /test),接下来在 test 目录下生成一个内容为“deletetest ”的测试文件file(echo 'deletetest'>file),这个时候本地目录会生成一个测试的文件:file,再新建一个叫 testdir 的目录(mkdir /test/testdir),那么这时本地既有文件又有目录,也就是我接下来要演示删除的这些文件。

我们可以通过 rm -rf ./*,直接把当前目录下的文件整体删除。然后我需要恢复这个文件,原理就是:通过分析它的 block 块,来恢复 inode 链接,要分析并恢复已删除文件的链接,我们要用到一些工具,这里推荐你使用一个叫 extundelete 的命令,它是在 Linux 下基于 ext3\ext4 的文件分析工具,可以对文件系统已删除的文件进行分析,并进行数据恢复。

在执行命令extundelete之前需要先做的是 umount,把我们刚刚误删的目录 umount 掉(umount  /test -l),避免有新的进程再往磁盘块里写数据,同时也便于执行工具进行接下来的分析。

附:extundelete 命令安装方式:

yum -y install bzip2 e2fsprogs e2fsprogs-devel gcc-c++

wget https://nchc.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2

tar jxvf extundelete-0.2.4.tar.bz2 

cd extundelete-0.2.4

./configure 

make && make install

安装好这个工具(extundelete)后,执行:extundelete /dev/sdb --inode 2

我们可以在命令后面加入设备名称,然后加入上面的 inode 进行分析。完成之后我们会看到显示屏幕上已经出现了刚刚删除的文件、名称及目录,还会看到 inode 号以及当前的状态。

我们也可以选择恢复单独文件类型文件,执行:extundelete /dev/sdb --restore-file file

加入的选项是 --restore-file,后面加你想恢复的文件名称。

在执行以上恢复操作之前,我先要确保数据恢复的目录 /opt/recovertest 下,cd  /opt/recovertest 目录下,执行想恢复的文件 extundelete /dev/sdb --restore-file file。

执行完命令后,会有一个成功的提示。此时在当前目录的 RECOVERED_FILES 目录,有对应恢复好的文件,一个是 file,一个是 file.v1(这个为刚恢复的文件),为什么是 file.v1 呢?因为我在做操作的时候有操作过两遍,所以它恢复了两个文件。第 1 个 file 是我之前写入的内容,第 2 个 file 则是由于我执行了第 2 次恢复,恢复的文件虽然也是 file,所以会自动命名成一个新的版本,叫作 file.v1(这个文件就是我们想要恢复的文件名称)。

刚刚讲到的选项是恢复单个文件,假设我们要恢复所有文件的话,就把选项改为 --restore-all,这样就把分析出来的已删除文件进行了恢复。如果件,只想恢复某一个目录,就可以把 "all" 改成 directory,然后用 restore-directory 这种方式恢复单个已删除的文件目录。

以上就是通过 extundelete 作场景 2 恢复演示。

平时工作中,你还是需要谨慎进行操作系统指令,以避免产生文件系统误删的情况,毕竟恢复起来对我们的业务影响,还有数据风险都是存在的。

‘叁’ linux使用rm-rf删除文件恢复方法

因为在整理文件,不仔细的原因导致不小心误删了一个模块,折腾一早上(真想抽自己一嘴巴子),搜索了一下找到了恢复方法

1.安装extundelet第一种方法查看yum源,有安装epel 仓库的话是有源的

查看yum源:yum list | grep extundelete

安装:yum install -y extundelete 

完成✅

2.第二种方法源码安装

wget  http://zy-res.oss-cn-hangzhou.aliyuncs.com/server/extundelete-0.2.4.tar.bz2

yum -y install bzip2 e2fsprogs-devel e2fsprogs gcc-c++ make

tar -xvjf extundelete-0.2.4.tar.bz2

cd extundelete-0.2.4

./configure

make

make install 

安装后完后查找数据,一个个查找

extundelete /dev/sdb1 

查找到文件后恢复数据

extundelete /dev/sda5/dbus-daemon --restore-directory /usr/bin

复原全部数据可以使用命令

extundelete /dev/sda5 --restore-a

‘肆’ linux恢复rm删除文件

linux使用rm删除的文件怎么恢复呢,下面就让我们来看看吧。
1、在终端窗口中输入命令touchdemo.txt创建一个演示文稿。


本文章基于ThinkpadE15品牌、centos7系统撰写的。

‘伍’ 在linux 根目录rm * -rf以后怎么办

首先,这是一个非常危险的操作,执行后Linux基本报废。如下图所示,把rm命令都删除了。我是在虚拟机中做的实验,真实机一定不要执行此操作。


其次,在根目录执行rm * -rf的命令对Linux系统来说是毁灭性的。如果日常工作中,删除了某个文件,可以通过下面的方法找回。以下方法不适用你问题中的情况。只是做为扩展。


1. lsof

文件刚刚被删除,想要恢复,先尝试lsof.

#lsof |grep data.file1

# cp /proc/xxx/xxx/xx /dir/data.file1


2.

如果lsof不能看到文件,那么就需要使用恢复软件进行恢复。

要做的第一件事是立刻卸载被误删除文件所在的分区,或者重新以只读方式挂载此分区。

umount /dev/part 或 mount -o remount,ro /dev/part

删除一个文件,就是将文件inode(inode 是操作系统寻找文件的目录,起到索引作用)

节点中的扇区指针清除,同时,释放这些数据对应的数据块,

而真实的文件还存留在磁盘分区中。但是这些被删除的文件不一定会一直存留在磁盘中,当这些

释放的数据块被操作系统重新分配时,这些被删除的数据就会被覆盖。因此要立刻卸载分区。


3. ext3grep

该工具只能用于ext3文件系统,操作步骤不详细介绍.

1> unmount /dev/part

2> ext3grep /dev/part --ls --inode 2 ##列出可恢复文件信息

3>ext3grep /dev/part --restore-inode N

4>恢复到 RESTORED_FILES/

更多命令查看 ext3grep --help



4. extundelete

该工具可以恢复ext3,ext4. http://extundelete.sourceforge.net/

1>fuser -k /dev/part && unmunt /dev/part

2>extundelete --inode 2 /dev/part

3>extundelete --restore-inode 13 /dev/part

4>恢复到 RECOVERD_FILES/

5.note

1> 对于空文件,不会进行恢复

2> 可以恢复mysql表, 由于myisam是单独3个文件,恢复出来就能使用。

3> 建议innodb,设置innodb_file_per_table 为 ON,这样也就能恢复单表数据。

4> 从上面可以看出,恢复工具这能恢复分区,所以,建议为应用软件单独划区进行安装,

存放数据。

‘陆’ linuxrm-rf删除的文件怎么恢复

第一种 误删文件进程还在

这种方法就比较简单,能还原的文件限制也比较多。如果被删除的文件的进程还是存在,即能找到进程PID。通过命令 lsof | grep (deletefile) 查找到进程id。然后就是进入进程目录 cd /proc/PID/fd 。然后可以通过 ll 命令查看具体文件信息,将有软连接到被删除文件的文件复制就可还原了。

第二种 使用extundelete之类基于inode的工具

针对 Linux 下的 ext 文件系统来说,常用的 Linux 文件删除恢复工具有 debugfs、ext3grep、extundelete 等。extundelete 是一个开源的数据恢复工具,支持 ext3、ext4 文件系统,其官方站点位于http://extundelete.sourceforce.net/,目前最新稳定版本为 0.2.0。

这个工具和还有一些其他类似的恢复工具,都是基于inode,还原文件的,也就是说,需要被删除文件的inode还在,没有被覆盖,即在文件删除之后,没有读写输入。所以第一件事就是挂起文件所在分区。但是这个操作有个问题就是,如果系统只有一个挂载盘,而且还是线上服务的话,挂起是不现实的。并且就算读写不多,但是系统本身没有安装这些恢复工具,在你安装编译这些恢复工具时的读写,也很可能把删除的文件inode覆盖了。

但是如果,系统拥有多个挂载盘,且被删除文件分区所在的文件盘挂起并不印象,你还是可以尝试这个方法的。或者系统本身就有安装这个工具,距离文件删除不是很久,也可以试一下,也许inode还在呢。

具体使用方法这里就不说了,网上很多教程,随便搜一下都是。

第三种 testdisk工具

testdisk 是分区表恢复、raid 恢复、分区恢复的开源免费工具(testdisk 支持如下文件系统: FAT12/FAT16/FAT32/NTFS/ext2/ext3/ext4)。testdisk 支持的功能: 修复分区表, 恢复已删除分区,用 FAT32 备份表恢复启动扇区,重建 FAT12/FAT16/FAT32 启动扇区,修复 FAT 表,重建 NTFS 启动扇区,用备份表恢复 NTFS 启动扇区,用 mft 镜像表(mft mirror)修复 mft 表,查找 ext2/ext3 备份的 superblock,从 FAT,NTFS 及 ext2 文件系统恢复删除文件,从已删除的 FAT,NTFS 及 ext2/ext3 分区复制文件。

所以,这个工具是不基于inode的,即时文件后,没有挂起分区,读写操作一直在进行,或者过去很久了,都是可以有机会恢复文件的。

但也不是百分百能成功,举个栗子,被删除的是 /usr/local/mytest 这个文件夹。然后你这个文件夹下部分文件的备份,为了及时先恢复部分线上业务,然后你mkdir /usr/local/mytest 然后将部分备份复制了进去。那么testdisk也无法拯救恢复了。还有就是testdisk恢复文件时,还需要注意看一下文件大小。如果文件大小显示为0,那么就算选择恢复这个文件,也是会得到一个0kb的文件。

所以这个适用于,一些inode已经被覆盖,但是文件物理存储块还未被覆盖的文件,可以尝试一下这个方法,也许可以找回部分丢失文件。

在使用rm -rf这个命令时一定要小心再小心,不然造成的后果是很严重的,因此提醒大家再使用这个命令时一定要保持头脑清醒。

‘柒’ rm-rf后如何恢复

1、首先进入救援模式。将/dev/sda两个分区分别挂载看看,里面的内容,有内容的就是根存在的分区,fconfigeno16777777192.168.8.2,从另外一台一样系统的根 。
2、其次用tar打包,一个个文件夹拷贝过来到坏系统,scp另外一个系统的etc.tar.gz修改拷贝过来的fstab:再拷贝/usr .然后解压到/mnt/sysimage。然后再ln -s源目标的硬链接。
3、然后这时就可以从救援模式进入真正的系统,再安装boot的软件包包:通过挂载光盘,#rpm-ivh kernel名字,boot还缺什么文件就从另外一个系统复制过来。
4、最后重写引导程序:#grub2-install /dev/sda,#grub2-mkconfig -0 /boot/grub2/grub.cfg,再重启,就可以进到系统启动页面:按e,进入grub界面:恢复进入系统。

‘捌’ linux 系统下面,rm -rf 删除的文件能找回来吗

在linux下rm -rf是一个很可怕的命令,这个命令意味着一旦删除的文件是无法挽回的。但是在一定的条件下可以补救,但是有个大前提:就是不能有覆盖的动作(意思就是在尝试恢复删除的数据前,删除文件的目录内不能存放新东西),不然覆盖多少就损失多少。
这里用到的套件是ext3grep、系统必须默认的安装上e2fsprogs-lib、2fsprogs-devel、e2fsprogs5、gcc、gcc++这些软件。
1、[root@localhost ~]# rpm -qa|grep e2fsprogs
e2fsprogs-libs-1.39-23.el5
e2fsprogs-devel-1.39-23.el5
e2fsprogs-1.39-23.el5
源码安装ext3grep
2、 [root@localhost ~]# llext3grep-0.10.2.tar.gz
-rw-r--r-- 1 root root 236364 Oct 17 2011 ext3grep-0.10.2.tar.gz
[root@localhost~]# tar zxvf ext3grep-0.10.2.tar.gz
[root@localhost ~]# cd ext3grep-0.10.2
[root@localhost ext3grep-0.10.2]# ./configure
[root@localhost ext3grep-0.10.2]# make && make install
[root@localhost ~]# ll /usr/local/bin
total 2656
-rwxr-xr-x 1 root root 2709704 Oct 15 04:46 ext3grep //www.linuxidc.com这句是那个可执行文件。
接下来演示一个补救的过程实例
[root@localhost~]# mkdir /data/ /ixdba/
[root@localhostdata]# dd if=/dev/zero of=data-disk bs=1M count=105
[root@localhost data]# mkfs.ext3 data-disk //格式为ext3的文件系统,在出现的提示符处输入y
[root@localhost data]# mount -o loop /data/data-disk /ixdba/ //挂载
[root@localhost data]# cp /etc/host* /ixdba/ //往里边放文件
[root@localhost data]# cp /etc/passwd /ixdba/
[root@localhost data]# cd /ixdba/
[root@localhost data]# rm -rf * //制造删除的动作
[root@localhost data]# cd /data/
[root@localhostdata]# ext3grep /data/data-disk --ls --inode 2 //查看丢失的文件
[root@localhostdata]# ext3grep /data/data-disk --restore-file passwd //仅仅恢复passwd这个文件
[root@localhost data]# ext3grep /data/data-disk --restore-all //恢复的动作,全部恢复。
[root@localhostdata]# ls
data-disk data-disk.ext3grep.stage1 data-disk.ext3grep.stage2 RESTORED_FILES
[root@localhost data]# ll RESTORED_FILES/ //所有恢复的文件全在这个文件夹里存放,都找回来了
total 48
-rw-r--r-- 1 root root 17 Oct 15 06:03host.conf
-rw-r--r-- 1 root root 187 Oct 15 06:03hosts
-rw-r--r-- 1 root root 161 Oct 15 06:03hosts.allow
-rw-r--r-- 1 root root 347 Oct 15 06:03hosts.deny
drwx------ 2 root root 4096 Oct 15 06:04 lost+found
-rw-r--r-- 1 root root 1635 Oct 15 06:03 passwd
总结:这里只能实现的是首次恢复的动作,并且不能有覆盖的动作。
注意:
1. ext3grep后面跟的是分区名称,不是目录名
2. --restore-file恢复指定文件,对路径名有特殊要求,具体请自己用—help查看
3. 所有恢复的文件放到该分区下的RESTORED_FILES目录,不是原目录
4. 关于所需的安装包,可以在系统光盘、SDK光盘上找。

‘玖’ rm-rf删除的文件怎么恢复

方法一:从回收站恢复误删除文件
双击电脑桌面上的"回收站"图标,打开回收站。浏览回收站里的文件,找到想要还原的文件。右击该文件,并选择"还原"选项。
这个文件就被还原到被删之前的位置。如果回收站里没有找到想要恢复的文件,那就需要尝试其他的恢复方法了。
方法二:从备份中恢复误删文件
重要的文件需及时做好备份,此外,备份文件应该保存多份,并且是保存在同的地方。遇到文件误删除的问题,可以查看下备份文件,如果可以找到备份,轻松将删除的文件恢复。如果找到的备份是近期的,也可以将损失降到最低。备份方法:重要的数据复制粘贴一份到其他的硬盘,也可以使用备份软件进行备份。
方法三:使用数据恢复软件找回丢失文件

‘拾’ Linux rm -rf 误删数据恢复

a、epel 仓库安装

如果我们的源里面添加了 epel 仓库的话,我们可以直接使用下面的命令安装。

b、源码编译安装

c、查看安装情况

先从根分区 inode 查找:

比如此处需要继续进入root则:

根据需要找到自己最终删除数据的目录

我们可以看到标称的 Deleted,这些数据就是我们要进行恢复的数据

注意: 有时候恢复数据会报错

此时,多尝试几种恢复方式

指定目录恢复,以当前分区为根分区进行路径设定,项目名进行掩盖

恢复全部数据可以使用命令

根据inode恢复

其他命令自行查看帮助

恢复的数据会在当前目录生成一个目录 RECOVERED_FILES 里面就是我们恢复的数据。

阅读全文

与rmrf的文件夹怎么恢复相关的资料

热点内容
dvd光盘存储汉子算法 浏览:757
苹果邮件无法连接服务器地址 浏览:963
phpffmpeg转码 浏览:671
长沙好玩的解压项目 浏览:145
专属学情分析报告是什么app 浏览:564
php工程部署 浏览:833
android全屏透明 浏览:737
阿里云服务器已开通怎么办 浏览:803
光遇为什么登录时服务器已满 浏览:302
PDF分析 浏览:485
h3c光纤全工半全工设置命令 浏览:143
公司法pdf下载 浏览:382
linuxmarkdown 浏览:350
华为手机怎么多选文件夹 浏览:683
如何取消命令方块指令 浏览:349
风翼app为什么进不去了 浏览:778
im4java压缩图片 浏览:362
数据查询网站源码 浏览:150
伊克塞尔文档怎么进行加密 浏览:892
app转账是什么 浏览:163