CUPS - 如何从命令行列出所有检测到的打印机(Linux)

CUPS - 如何从命令行列出所有检测到的打印机(Linux)

在 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/

相关内容