Linux:获取程序当前打开的文件列表

时间:2010-08-18 14:46:48

标签: linux

在Linux中,如何获取当前在程序X中打开的文件列表?

(具体来说,我在Fedora上,该程序是Zend Studio,但我认为这是一个普遍的答案。)

6 个答案:

答案 0 :(得分:18)

使用例如lsof(“列出打开的文件”)并过滤输出,或使用-c programX选项将其限制为programX打开的文件。该表达式可以是通配符。

答案 1 :(得分:6)

您可以在/proc/PID/fd中找到指向实际文件的符号链接,其中PID是进程ID。

答案 2 :(得分:2)

ls -l /proc/<zend studio's pid>/fd将打印文件描述符列表。映射到通过open()打开的文件的那些将是用于打开它们的文件路径的符号链接。

答案 3 :(得分:1)

安装程序lsof(如果尚未安装)。获取正在运行的程序的pid。运行lsof -p [pid]

答案 4 :(得分:0)

lsof -p [PID]

或者,一次性获取PID

lsof -p `pgrep [PROG_NAME]`

或者,甚至更简单

lsof -c [PROG_NAME]

答案 5 :(得分:0)

您可以使用

ls /proc/PID/fd | wc -l 

返回PID打开的文件数 或者你可以使用lsof(打开文件列表)

lsof -a -p pid