自定义 lsof 输出

pra*_*tri 3 lsof

以下命令生成了 PID 30661 打开的 unix 域套接字

$ sudo lsof -U -a -p 30661
COMMAND   PID    USER   FD   TYPE     DEVICE SIZE/OFF       NODE NAME
haproxy 30661 haproxy    7u  unix 0xc784a000      0t0 3348210055 /var/lib/haproxy/stats.30660.tmp
Run Code Online (Sandbox Code Playgroud)

我想要一个使用 lsof 内部选项的命令将输出作为“var/lib/haproxy/stats.30660.tmp”

我不想使用管道和其他工具来获取此输出。

Flu*_*lup 5

lsof的内部格式选项非常严格,因为它们坚持在每个字段前面加上一个字母,以指定该字段的含义。例如,

$ sudo lsof -U -a -p 30661 -Fn
Run Code Online (Sandbox Code Playgroud)

会给

p30661
n/var/lib/haproxy/stats.30660.tmp
Run Code Online (Sandbox Code Playgroud)

手册页说进程 ID 总是被选中,所以似乎没有办法只获取文件名(当然可能有多个)。我想给你更多选择,但你说你不想使用管道或其他命令。