在实际的工作中,朋友们可能会将linux服务器上的文件不小心误删除掉了。而且越是资历老的工程师越容易犯这样的错误,敲代码的速度也是够快,啪啪rm -rf
一个回车,然后就是打脸时刻 。新人操作文件时往往战战兢兢、反复确认,反而不容易出错。如果你也是一个有多年工作经验的工程师,也给自己提个醒:淹死的都是会游泳的。我们需要区分两种场景来进行误删除文件的恢复:
-
第一种场景:被删除的文件正在被进程使用
-
第二种场景:文件没有被任何进程使用
第一种场景的数据恢复相对简单一些,第二种相对麻烦些。
第一种场景:被删除的文件正在被其他进程使用。我们先创建一个独立目录testdel,用于完成我们的实验。然后使用echo命令创建一个文件test-recovery.txt,放在testdel目录下,文件内容是:“test file delete recovery”。重点来了:我们使用命令tail来一直监听这个文件,表示这个文件一直被tail进程监听占用。
$ mkdir ./testdel;
$ echo "test file delete recovery" > ./testdel/test-recovery.txt;
$ tail -f ./testdel/test-recovery.txt;
此时我们新打开一个linux终端,完成文件删除操作,文件删除之后使用ls
命名在该目录下查看不到任何的文件。
$ rm -fr