首先我们要知道lsof这个命令是做什么用的,简单的讲就是列出当前打开的程序,进程或者用户所使用的所有文件(是正在使用的) 在这之前我们要搞清楚一个理论知识:那就是句柄(这里我用缓存来理解的,这样更容易理解)及空间释放问题 打个比方:在生产环境中,有维护人员正在用 tail 命令查看一个日志,然后另一个维护人员用rm -rf 命令把这个日志给删除了。但是这时其实你的空间还没有真正的释放,因为为还有用户占用着这个文件,所以在缓存中这个文件还是存在的。那么我们就可以通这个缓存把文件给恢复回来。下面我们开始实验 1.首先我们用下面的命令查看我们的 less /var/log/messages 然后再按我们键盘上的 ctrl + z 先暂停(注意,这时候我们的 less 命令占用着这个文件) less /var/log/messages 复制代码 2.然后我们用 rm -rf /var/log/messages 删除这个文件 rm -rf /var/log/messages 复制代码 3.你可以 ls 看下我们的这个文件已经被删除了,这时候不要惊慌,我们现在来恢复,首先,我们要使用 lsof 命令找到 less 这个程序占用着哪些文件 lsof | grep deleted #过滤出已经被删除的所有文件(这里被删除的意思是程序在占用且被删除),在最后一列找到我们需要恢复的文件 复制代码 4.刚上面的命令的结果如下: $ lsof | grep deleted #过滤出less这个程序所占用的所有文件,在最后一列找到我们需要恢复的文件 rsyslogd 903 root 4w… Continue reading 例用lsof命令恢复linux误删除文件(正在使用的文件)