Lpr ile kullanım için kabul edilebilir yazıcı isimleri nasıl listelenir?


64

lprAdam sayfası bir hedeftir yazıcı ile belirtilebilir diyor -Pbayrak.

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

Ubuntu / Gnome'daki GUI'yi kullanarak yerel Samba paylaşımlarına çeşitli yazıcılar ekledim. Bu mevcut yazıcıların -Pbayraklarını beklediği biçimde (tercihen bir bash kabuğundan) nasıl alabilirim?

Yanıtlar:



12

Bir liste almak için kullanabilirsiniz:

lpstat -a

veya

cat /etc/printcap

Yalnızca yazıcı adlarını yazdırmak için:

lpstat + okuma + dizi:

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

lpstat + awk:

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

lpstat + kes:

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

kedi + grep + kesip /etc/printcap:

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

Bu, her satırda bir tane gösterilir.

HP_LaserJet_P1606dn
HP_Deskjet_2540_series
HP_LaserJet_M1212nf
GCP-Save_to_Google_Docs

Gibi hissediyorum lpstatçözümler daha şık ve güvenilir. Çünkü /etc/printcaptest ettiğim bazı sistemlerde bulunmadı.

Kullanma hakkında awkya cut, yüklü ve tercih ne bağlıdır. Bash read + bash array seçeneği, haricilara ihtiyaç duymadan herhangi bir bash kabuğunda çalışmalıdır.

EDIT: İşaretli çözümün benim için Amazon Linux'ta işe yaramadığını söyledim. Ancak, yalnızca yazıcı adlarını çıktının geri kalan kısmının ortasından kopyalamak istiyorsanız işe yarar. Sadece kullanmakla aynı şekilde çalışır 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 üzerinde de çalışacaktır.
tresf

Çıktı örneğinize göre, lpstat -p -diş gibi görünüyor…
Skippy le Grand Gourou

Üzgünüm ama soruyor How can I get a list of these available printers in the format that the (lpr) -P flag expects. Benim lpstat -p -daçıkça örnek , bununla sadece yazıcı adından daha fazlasını elde ettiğinizi gösteriyor. Bu durumda bir lpr -P $PRINTERNAMEçağrı için bu çıkışı kullanamazsınız . Yani hayır! lpstat -p -dVerdiğim örnekte çalışmıyor.
Gus Neves,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.