Один из способов - использовать ifconfig
с - s
(короткий список) и вырежьте нужную часть:
$ ifconfig -a -s
Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 0 1374267176 0 116420 0 2848281091 0 0 0 BMRU
lo 65536 0 761767047 0 0 0 761767047 0 0 0 LRU
vboxnet0 1500 0 0 0 0 0 0 0 0 0 BM
virbr0 1500 0 0 0 0 0 0 0 0 0 BMU
$ ifconfig -s -a | awk '$1 !~ /Iface/ {print $1}'
eth0
lo
vboxnet0
virbr0
Или аналогичным способом с ip
:
$ ip -o link show | awk -F': ' '{print $2}'
lo
eth0
virbr0
vboxnet0
Документы для (...)
перечисляют /
как исключение:
Note that grouping cannot extend over multiple directories: it is an error to have a `/' within a group (this only applies for patterns used in filename generation). There is one exception: a group of the form (pat/)# appearing as a complete path segment can match a sequence of directories.
В противном случае повторения можно избежать, используя выражение для фильтрации результатов:
% print -l a/**/*(.)
a/b/c/foo/file
a/b/d/foo/file
a/bad/e/foo/file
a/nope/d/foo/file
% print -l a/**/*(.e:'[[ $REPLY != *(bad|nope)* ]]':)
a/b/c/foo/file
a/b/d/foo/file