lsof
(list open files)是一个在Linux系统中用于显示当前系统打开文件的实用工具
-
查找特定文件或目录的打开情况: 使用
lsof
命令加上-c
选项,可以查找指定进程ID(PID)正在使用的文件。例如,要查找进程ID为1234的程序打开的文件,可以使用以下命令:lsof -c 1234
-
查找特定类型的文件: 使用
-e
选项,可以根据文件类型过滤结果。例如,要查找所有打开的网络连接,可以使用以下命令:lsof -i
若要查找所有打开的PDF文件,可以使用以下命令:
lsof -e pdf
-
实时监控文件打开情况: 使用
-r
选项,可以让lsof
命令以实时方式显示文件打开情况。例如,要实时监控/var/log
目录下的文件打开情况,可以使用以下命令:lsof +r /var/log
-
查找特定用户打开的文件: 使用
-u
选项,可以根据用户名过滤结果。例如,要查找用户名为www-data
的用户打开的文件,可以使用以下命令:lsof -u www-data
-
查找特定文件描述符的文件: 使用
-p
选项,可以根据文件描述符过滤结果。例如,要查找文件描述符为4的文件,可以使用以下命令:lsof -p 4
-
查找挂载点下的文件: 使用
-h
选项,可以在挂载点下查找文件。例如,要在挂载点/mnt/data
下查找文件,可以使用以下命令:lsof -h /mnt/data
-
结合其他命令进行调试:
lsof
命令可以与其他命令结合使用,以便更好地进行调试。例如,要将lsof
的输出保存到文件中,可以使用以下命令:lsof > file.txt
若要将
lsof
的输出传递给其他命令(如grep
),可以使用管道:lsof | grep pdf
请注意,要运行 lsof
命令,通常需要具有相应的权限。在某些情况下,可能需要使用 sudo
命令以获取更高的权限。