确定进程正在访问哪些文件

jua*_*aid 9 linux

我如何找出特定进程访问的所有文件?

我正在使用 Ubuntu 9.04。

Pet*_*sen 11

lsof将列出打开的文件和关联的进程 ID。如果没有给出选项,它会列出所有内容。

有一个选项,-p用于列出单个进程的打开文件。因此,对于 PID 为 6714 的进程,这将列出该进程打开的文件:

    lsof -p 6714
Run Code Online (Sandbox Code Playgroud)

要仅列出常规文件grep可用于过滤 lsof 的输出:

    lsof -p 6714 | grep REG
Run Code Online (Sandbox Code Playgroud)

如果它需要比 grep 更健壮,那么-F可以使用该选项,但它会变得更加复杂。从lsof 手册页

当指定了 -F 选项时,lsof 生成适合由另一个程序处理的输出 - 例如,awk 或 Perl 脚本,或 C 程序。

这取决于您的要求。