find /sys/class/net -type l -not -lname '*virtual*' -printf '%f\n'
Показывает только интерфейсы, которые относятся к физическому NIC.
Пытался найти typeвариант, ip link showкоторый бы отображал нелогично, но увы:
ip link help 2>&1 | grep -A10 'TYPE :='
TYPE := { vlan | veth | vcan | dummy | ifb | macvlan | macvtap |
bridge | bond | ipoib | ip6tnl | ipip | sit | vxlan |
gre | gretap | ip6gre | ip6gretap | vti | nlmon |
bond_slave | ipvlan | geneve | bridge_slave | vrf }
Кажется, это единственное, что ip link showне может сделать. По крайней мере, не прибегая к сценарию, который сначала перечисляет все вышеперечисленное, а затем делает grep -vокончательный запуск без typeуказания.