/proc 分区下保存着进程目录和名字,包含fd(文件描述符)和其下的子目录(进程打开文件的链接),那么如果删除了一个文件,还存在一个 inode的引用:/proc/进程号/fd/文件描述符。

我们利用lsof命令找到打开文件的进程,然后找到文件描叙符,通过该文件描叙符恢复文件。具体过程如下:

1、生成测试文件

2、more netstate.txt(或开其他引用这个文件的进程),按CTRL+Z暂停进程。

3、删除netstate.txt,这样netstate.txt是干掉了,但是还存在一个引用这个文件的进程呢!

linux下恢复存在 inode的引用的误删除文件_第1张图片

通过lsof找到进程

得到进程号后,进入/proc/进程号/fd,可以看到该文件的引用(状态是delete)

linux下恢复存在 inode的引用的误删除文件_第2张图片

文件恢复咯!注意只能恢复在系统中还存在i-node的文件哦!