使用lsof获取文件名列表

Eri*_*tto 7 unix command-line

编辑1

我在使用给出的参数时遇到了问题.也许这是我通过NSTask传递我的论点的方式?有关如何做到这一点的任何建议?

NSTask *file_Task = [NSTask new];
[file_Task setLaunchPath:@"/usr/sbin/lsof"];
[file_Task setArguments:[NSArray arrayWithObjects:@"+p", the_Pid, nil]];
Run Code Online (Sandbox Code Playgroud)

下午好的编码员....

我正在使用以下命令:

lsof +p 13812
Run Code Online (Sandbox Code Playgroud)

获取进程访问的文件列表.问题是它给了我很多我不想要的其他信息,如TYPE,DEVICE等.

是否有一个参数我可以添加到上面的命令,以便我得到NAME

谢谢你,谢谢你,谢谢你!:)

埃里克

Has*_*kun 6

您可以使用:

lsof -Fn +p 12345
Run Code Online (Sandbox Code Playgroud)

这将输出一个行列表,第一行p后面是进程ID,后面的所有行n后面跟着文件名.

如果您想快速预处理,可以执行类似以下操作:

lsof -Fn +p 12345 | tail -n +2 | cut -c2-
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅lsof手册页,特别是在OUTPUT FOR OTHER PROGRAMS标题下.


jcu*_*bic 5

尝试:

lsof | tr -s ' ' | 剪切 -d' ' -f9