Назад | Перейти на главную страницу

Пользовательский вывод lsof

Следующая команда создала сокет домена unix, открытый PID 30661.

$ 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

Я хочу, чтобы команда, использующая внутренние параметры lsof, выдавала просто «var / lib / haproxy / stats.30660.tmp»

Я не хочу использовать pipe и другие инструменты для получения этого вывода.

lsofвнутренние параметры форматирования довольно ограничительны, поскольку они настаивают на том, чтобы перед каждым полем была буква, обозначающая значение этого поля. Например,

$ sudo lsof -U -a -p 30661 -Fn

даст

p30661
n/var/lib/haproxy/stats.30660.tmp

На странице руководства говорится, что идентификатор процесса выбирается всегда, поэтому, похоже, нет способа получить только имя файла (которого, конечно, может быть несколько). Я хочу дать вам больше возможностей, но вы сказали, что не хотите использовать каналы или другие команды.