lsof_commands
Table of Contents
1 lsof常用命令
lsof(list open files)是一个列出打开文件的命令。在Linux下非常有用。常用命令列表:
args | desc |
filename | 显示所有打开文件的文件名 |
-a | 表示两个参数都必须满足时才显示结果 |
-c string | 显示shell下command中包含string的命令 |
-u username | 显示username打开的所有文件 |
-g gid | 显示数据gid的所有进程情况 |
+d dir | 显示目录下进程打开文件情况 |
+D dir | 显示目录及子目录下进程打开文件情况 |
-d fn | 显示指定文件描述符的文件 |
-n | 不将IP转换为hostname |
-i\[46\] \[protocol\]\[@hostname!hostaddr\]\[:service!port\] | 显示符合条件的进程情况 |
利用lsof恢复删除文件,如果文件在磁盘被删除,但是如果还有进程在操作此文件,这时文件是可以恢复的。因为当有进程读写此文件时,此文件被删除了,这时只删除了文件的索引,并没有删除文件的内容,可以想办法恢复。这时可以通过lsof查找对应的文件fd,
lsof | grep filename
然后在/proc/<processid>/fd/<fileid>就是对应的文件id, 恢复命令如下:
cat /proc/<process_id>/fd/<file_id> > filename