Unix 使用lsof获取文件名列表
编辑1 我在使用给出的参数时遇到问题。也许这就是我通过NSTask传递论点的方式?有没有关于我如何做到这一点的建议Unix 使用lsof获取文件名列表,unix,command-line,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]]; 各位程序员下午好 我正在使用以下命令: lsof +p 13812 获取进
NSTask *file_Task = [NSTask new];
[file_Task setLaunchPath:@"/usr/sbin/lsof"];
[file_Task setArguments:[NSArray arrayWithObjects:@"+p", the_Pid, nil]];
各位程序员下午好 我正在使用以下命令:
lsof +p 13812
获取进程访问的文件列表。问题是它给了我很多我不想要的额外信息,比如类型、设备等等
是否有一个参数可以添加到上述命令中,以便仅获取名称
谢谢你,谢谢你谢谢你!:)
埃里克试试:
lsof | tr -s ' ' | cut -d' ' -f9
lsof | tr-s'|切口-d'-f9
lsof+p 9174 | awk'{print$9}'您可以使用:
lsof -Fn +p 12345
这将输出一个行列表,第一行是p
,后面是进程ID,
以及由n
后跟文件名组成的以下所有行
如果您想快速预处理,可以执行以下类似操作:
lsof -Fn +p 12345 | tail -n +2 | cut -c2-
有关更多信息,请参阅,特别是在“其他程序的输出”标题下。列出当前播放的歌曲(nfs文件,由用户mpd访问):
sed部分删除所有不以n开头的行,并在最终输出中删除n 您是否还“只”想要进程已打开的文件LSOF将返回所有打开的文件描述符(文件、套接字、TTYS等)以及当前工作目录、共享库的条目。考虑文件名中的空格。这也将打印页眉,不幸的是,FYI,至少在最近版本的“代码> LSOF < /代码>中,您的示例(<代码> LSOF-FN+P 12345 )也将输出文件描述符行。
$ 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