$ lpstat -p -d
Z manuálu CUPS.
K získání seznamu můžete použít:
lpstat -a
nebo
cat /etc/printcap
Chcete-li vytisknout pouze názvy tiskáren:
lpstat + čtení + pole:
$ 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 v /etc/printcap
:
$ cat /etc/printcap | cut -f1 -d'|' | grep '^#' -v
Toto je zobrazeno, jeden na řádek:
HP_LaserJet_P1606dn
HP_Deskjet_2540_series
HP_LaserJet_M1212nf
GCP-Save_to_Google_Docs
Cítím se jako lpstat
řešení jsou elegantnější a spolehlivější. Většinou proto, že /etc/printcap
nebyl nalezen na některých systémech, které jsem testoval.
O použití awk
nebo cut
, záleží na tom, co máte nainstalované a preferujete. Možnost čtení bash + pole bash by měla fungovat na jakémkoli bash shellu bez potřeby externích zařízení.
UPRAVIT: Řekl jsem, že označené řešení pro mě na Amazon Linux nefunguje. Ale myslím, že to funguje, pokud chcete pouze zkopírovat názvy tiskáren z poloviny zbytku výstupu. Funguje stejně jako použití pouze 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
Tapeta na více obrazovkách v Linuxu?
Jak spustit GUI linuxové programy z příkazového řádku, ale odděleně od příkazového řádku?