执行了rmf操作,也许不用买机票

让白癜风患者感受中科魅力 https://m-mip.39.net/news/a_6185499.html

对于程序猿来说,最怕碰到的编程第一难肯定是“bug”了,那么第二呢?今天暂且先来谈谈rm-f操作后该怎么办?

面对执行rm-f操作后,很多人的第一想法就是赶紧订机票出国。但是下面的操作获取可以让你省一笔机票钱了。

我们先来模拟一下从删除到恢复的整个过程。

01删除

服务器目录/roots/selenium/Spider/MySql.data.dll文件删除

02恢复

使用lsof命令查看是否有进程打开/root/selenium/Spider/MySql.Data.dll文件:

从上面可以看出,当前文件状态为已删除(deleted)。

之后就要查看是否存在恢复数据:

然后就要使用I/O重定向恢复文件:

最后就是运行了:

完美

很多程序猿可能就会问了,这是怎么实现的呢??(我天朝大国的程序员就是这么好学),其实啊原理很简单:

在Linux系统中,每个运行中的程序都有一个宿主进程彼此隔离,以/proc/进程号来体现(Linux本质上就是一个文件系统),比如:ls-l/proc/查看进程PID为的进程信息。

当程序运行时,操作系统会专门开辟一块内存区域,提供给当前进程使用,对于依赖的文件,操作系统会发放一个文件描述符,以便读写文件,当我们执行rm-f删除文件时,其实只是删除了文件的目录索引节点,对于文件系统不可见,但是对于打开它的进程依然可见,即仍然可以使用先前发放的文件描述符读写文件,正是利用这样的原理,所以我们可以使用I/O重定向的方式来恢复文件。

所以啊,如果你不小心执行了rm-f操作,别急着预订出国的机票,先看看我们的方法能不能管用吧。




转载请注明:http://www.aierlanlan.com/grrz/2643.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了