Следующая команда создала сокет домена 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
На странице руководства говорится, что идентификатор процесса выбирается всегда, поэтому, похоже, нет способа получить только имя файла (которого, конечно, может быть несколько). Я хочу дать вам больше возможностей, но вы сказали, что не хотите использовать каналы или другие команды.