如何列出可用于lpr的打印机名称?


64

lpr男子说:页目标打印机可以与指定-P标志。

-P destination[/instance]
    Prints files to the named printer.

我已经使用Ubuntu / Gnome中的GUI在本地Samba共享上“添加”了各种打印机。我如何以-P标志期望的格式(最好是从bash shell中)获取这些可用打印机的列表?

Answers:



12

要获取列表,您可以使用:

lpstat -a

要么

cat /etc/printcap

要仅打印打印机名称:

lpstat +读取+数组:

$ while read l; do l=($l); echo "${l[0]}"; done <<< "$(lpstat -a)"

lpstat + awk:

$ lpstat -a | awk '{print $1}'

lpstat +剪切:

$ lpstat -a | cut -f1 -d ' '

cat + grep +切入/etc/printcap

$ cat /etc/printcap | cut -f1 -d'|' | grep '^#' -v

这是显示的内容,每行一个:

HP_LaserJet_P1606dn
HP_Deskjet_2540_series
HP_LaserJet_M1212nf
GCP-Save_to_Google_Docs

我觉得lpstat解决方案更优雅,更可靠。主要是因为/etc/printcap在我测试的某些系统上找不到。

关于使用awkcut,取决于您所安装和喜欢的东西。bash读取+ bash数组选项应该可以在任何bash shell上运行,而无需外部。

编辑:我说标记的解决方案对我在Amazon Linux上不起作用。但是我想如果您只想从输出的其余部分中间复制打印机名称,则可以使用。与使用just相同lpstat -a

$ lpstat -p -d
printer HP_Deskjet_2540_series is idle. enabled since Tue 22 Dec 2015 01:12:10 PM BRST
. . .
printer GCP-Save_to_Google_Docs is idle. enabled since Tue 15 Dec 2015 02:13:33 AM BRST
system default destination: HP_LaserJet_P1606dn

lpstat + cut也可以在OS X上运行。
tresf

根据您的输出样本,lpstat -p -d似乎有效……
Skippy le Grand Gourou

抱歉,他问How can I get a list of these available printers in the format that the (lpr) -P flag expects。我的示例lpstat -p -d清楚地表明,您获得的不仅仅是打印机名称。在这种情况下,您不能使用该输出进行lpr -P $PRINTERNAME呼叫。所以不行!lpstat -p -d在我给出的示例中不起作用。
Gus Neves
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.