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
lpqişe yaradığını buldum .