设备环境变量列表的前缀(P、N、S、E)是什么意思?

设备环境变量列表的前缀(P、N、S、E)是什么意思?

编写 udev 规则时(例如对于 USB 存储卷),我可以使用以下任一方式显示插入设备的相关属性:

$ udevadm info -q property -n /dev/sdc1
/devices/pci0000:00/0000:00:1d.7/usb2/2-3/2-3.1/2-3.1.3/2-3.1.3:1.0/host5/target5:0:0/5:0:0:0/block/sdc/sdc1
sdc1
disk/by-id/usb-Hitachi_HTS541612J9AT00-0:0-part1
disk/by-path/pci-0000:00:1d.7-usb-0:3.1.3:1.0-scsi-0:0:0:0-part1
DEVLINKS=/dev/disk/by-id/usb-Hitachi_HTS541612J9AT00-0:0-part1 /dev/disk/by-path/pci-0000:00:1d.7-usb-0:3.1.3:1.0-scsi-0:0:0:0-part1
DEVNAME=/dev/sdc1
DEVPATH=/devices/pci0000:00/0000:00:1d.7/usb2/2-3/2-3.1/2-3.1.3/2-3.1.3:1.0/host5/target5:0:0/5:0:0:0/block/sdc/sdc1
DEVTYPE=partition
ID_BUS=usb
ID_INSTANCE=0:0
ID_MODEL=HTS541612J9AT00
ID_MODEL_ENC=HTS541612J9AT00\x20
ID_MODEL_ID=0702
ID_PART_ENTRY_DISK=8:32
ID_PART_ENTRY_NUMBER=1
ID_PART_ENTRY_OFFSET=2048
...

或者

$ udevadm info -q all -n /dev/sdc1
P: /devices/pci0000:00/0000:00:1d.7/usb2/2-3/2-3.1/2-3.1.3/2-3.1.3:1.0/host5/target5:0:0/5:0:0:0/block/sdc/sdc1
N: sdc1
S: disk/by-id/usb-Hitachi_HTS541612J9AT00-0:0-part1
S: disk/by-path/pci-0000:00:1d.7-usb-0:3.1.3:1.0-scsi-0:0:0:0-part1
E: DEVLINKS=/dev/disk/by-id/usb-Hitachi_HTS541612J9AT00-0:0-part1 /dev/disk/by-path/pci-0000:00:1d.7-usb-0:3.1.3:1.0-scsi-0:0:0:0-part1
E: DEVNAME=/dev/sdc1
E: DEVPATH=/devices/pci0000:00/0000:00:1d.7/usb2/2-3/2-3.1/2-3.1.3/2-3.1.3:1.0/host5/target5:0:0/5:0:0:0/block/sdc/sdc1
E: DEVTYPE=partition
E: ID_BUS=usb
E: ID_INSTANCE=0:0
E: ID_MODEL=HTS541612J9AT00
E: ID_MODEL_ENC=HTS541612J9AT00\x20
E: ID_MODEL_ID=0702
E: ID_PART_ENTRY_DISK=8:32
E: ID_PART_ENTRY_NUMBER=1
E: ID_PART_ENTRY_OFFSET=2048
...

... 明显的区别是第二种情况下的 P、N、S、E 前缀。

我无法在和的手册页中或使用搜索引擎来追踪它们的udev含义udevadm问)有人可以指点我吗?

答案1

答案就在man udevadm

--query=type
   Query the database for specified type of device data. It needs the
   --path or --name to identify the specified device. Valid queries
   are: name, symlink, path, property, all.

所以:

  • N: 表示 /dev 中的设备名称
  • S: 是 /dev 中该设备名称的符号链接
  • P: 表示 /sys 中的设备路径
  • E: 用于 udev 中的设备属性

相关内容