$ lpstat -p -d
Dal manuale CUPS.
Per ottenere un elenco puoi usare:
lpstat -a
o
cat /etc/printcap
Per stampare solo i nomi delle stampanti:
lpstat + lettura + array:
$ while read l; do l=($l); echo "${l[0]}"; done <<< "$(lpstat -a)"
lpstat + awk:
$ lpstat -a | awk '{print $1}'
lpstat + cut:
$ lpstat -a | cut -f1 -d ' '
cat + grep + cut in /etc/printcap
:
$ cat /etc/printcap | cut -f1 -d'|' | grep '^#' -v
Questo è ciò che viene mostrato, uno per riga:
HP_LaserJet_P1606dn
HP_Deskjet_2540_series
HP_LaserJet_M1212nf
GCP-Save_to_Google_Docs
Mi sento come il lpstat
le soluzioni sono più eleganti e affidabili. Principalmente perché /etc/printcap
non è stato trovato su alcuni sistemi che ho testato.
Informazioni sull'uso di awk
o cut
, dipende da cosa hai installato e preferisci. L'opzione bash read + bash array dovrebbe funzionare su qualsiasi shell bash senza bisogno di elementi esterni.
MODIFICA : Ho detto che la soluzione contrassegnata non funziona per me su Amazon Linux. Ma immagino che funzioni se vuoi solo copiare i nomi delle stampanti dalla metà del resto dell'output. Funziona come usare solo 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