在Linux中,如何获取当前在程序X中打开的文件列表?
(具体来说,我在Fedora上,该程序是Zend Studio,但我认为这是一个普遍的答案。)
答案 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