“Sudo”前缀命令不起作用;没有 sudo 就可以。

“Sudo”前缀命令不起作用;没有 sudo 就可以。

我怀疑这个问题以前已经回答过,但我不知道这叫什么,所以我无法真正搜索它。

这是怎么回事:

$ grep H=p <(udevadm info /dev/ttyUSB0)
E: ID_PATH=pci-0000:00:1d.0-usb-0:1.5.2:1.0

但这不是吗? :

$ sudo grep H=p <(udevadm info /dev/ttyUSB0)
grep: /dev/fd/63: No such file or directory

请不要介意在这种情况下不需要 sudo 。

答案1

在运行命令之前,shell 将替换<(udevadm info /dev/ttyUSB0)为(将管道的读取端复制到 fd 63 后)。/dev/fd/63但是,sudo 默认情况下会关闭所有大于 2 的文件描述符。您可以使用 sudo--close-from标志来更改此设置,但有更好的方法:

sudo bash -c 'grep H=p <(udevadm 信息 /dev/ttyUSB0)'

相关内容