编写 udev 规则时是否可以使用通配符?我有多个座位,我想将连接到某个 USB 集线器(或者更好的是 PC 前面的特定端口)的每个设备(键盘、鼠标等)分配给 Seat1。每次我交换东西或者不记得每个设备连接在哪个 USB 插槽时都必须重做新规则,这有点麻烦。
仅使用简单的 udev 规则,如“loginctl Attach”命令生成的:
TAG==“座位”,ENV{ID_FOR_SEAT}==“usb-pci-0000_00_14_0-usb-0_5_3”,ENV{ID_SEAT}="seat1"
答案1
可以在 udev 规则中使用通配符;这记录在udev(7)
手册页:
大多数字段支持 shell 全局模式匹配和替代模式。支持以下特殊字符:
“*”匹配零个或多个字符。
“?”匹配任何单个字符。
“[]”匹配括号内指定的任何单个字符。例如,模式字符串“tty[SR]”将匹配“ttyS”或“ttyR”。还通过“-”字符支持范围。例如,为了匹配所有数字的范围,可以使用模式“[0-9]”。如果“[”后面的第一个字符是“!”,则匹配任何未括起来的字符。
“|”分隔替代模式。例如,模式字符串“abc|x*”将匹配“abc”或“x*”。
您可以看到一些示例规则这里。