编辑1
我在使用给出的参数时遇到了问题。也许这是我通过NSTask传递我的论点的方式?有关如何做到这一点的任何建议吗?
NSTask *file_Task = [NSTask new];
[file_Task setLaunchPath:@"/usr/sbin/lsof"];
[file_Task setArguments:[NSArray arrayWithObjects:@"+p", the_Pid, nil]];
下午好的编码员......
我正在使用以下命令:
lsof +p 13812
获取进程访问的文件列表。问题是它给了我很多我不想要的其他信息,如TYPE,DEVICE等。
我是否可以添加上述命令,以便仅 NAME ?
谢谢,谢谢,谢谢! :)Eric
答案 0 :(得分:6)
您可以使用:
lsof -Fn +p 12345
这将输出一个行列表,第一行是p
,后跟进程ID,
以及包含n
后跟文件名的所有后续行。
如果您想快速预处理,可以执行以下类似操作:
lsof -Fn +p 12345 | tail -n +2 | cut -c2-
有关详细信息,请参阅lsof
man page,具体请参见OUTPUT FOR OTHER PROGRAMS
标题。
答案 1 :(得分:3)
尝试:
lsof | tr -s ' ' | cut -d' ' -f9
答案 2 :(得分:1)
列出当前播放的歌曲(nfs文件,由用户mpd访问):
$ sudo lsof -N -a -u mpd -Fn |
sed '/n/!d; s/^n//'
/R/audio/[...] Jay-Jay Johanson , So Tell The Girls That I Am Back.mp3
sed部分删除任何不以n开头的行,并删除最终输出中的n。
答案 3 :(得分:0)
lsof + p 9174 | awk'{print $ 9}'