在 CUPS 网络界面中,添加打印机时,界面会显示所有检测到的打印机(包括本地和网络打印机),用户可以选择要添加到 CUPS 的打印机。
我如何从命令行获取此列表?
谢谢。
答案1
它似乎lpinfo -v
会输出所有检测到的打印机的列表,每个这一页。
答案2
在 Debian/bullseye(Debian 11)中我们有 cups-client 2.3.3(2.3.3op2-3+deb11u1)。
lpinfo(8)状态:
lpinfo-显示可用的设备或驱动程序(已弃用)
这里sudo lpinfo -v
列出了类似这样的内容:
❯ sudo lpinfo -v
[sudo] password for jkirk:
file cups-brf:/
network ipps
network beh
network socket
network lpd
network http
network ipp
direct hp
network https
network smb
direct hpfax
引用https://www.cups.org/doc/admin.html:
lpadmin(8) 程序用于添加、修改或删除目标,而 lpinfo(8) 命令用于列出可用的打印机驱动程序和后端。cupsctl(8) 程序用于管理整个打印系统,包括调试日志记录和打印机共享等。
因此lpinfo
(1) 已被弃用,并且仅列出“可用的打印机驱动程序和后端”,而这不是我们所需要的。
我终于发现lpstat(1):
lpstat — 打印 cups 状态信息
[...]
-v [打印机]
显示打印机及其所连接的设备。如果没有指定打印机,则列出所有打印机。
这给了我已连接/已配置的打印机列表(如 http://localhost:631/printers/ 中所列):
❯ lpstat -v
device for Brother_MFC-L3750CDW_series: dnssd://Brother%20MFC-L3750CDW%20series._ipp._tcp.local/?uuid=e3248000-80ce-11db-8000-b4220042d121
device for HP_Color_LaserJet_MFP_M477fdw: socket://10.17.0.8
device for HP_DeskJet_4720_series: socket://192.168.178.33
device for HP_LaserJet_4200: socket://192.168.178.33
device for Lexmark_Lexmark_T630_himalia: ///dev/null
device for SHARP_MX-5140N: dnssd://MX-5140N%20(4503825900)._printer._tcp.local/