回答:
$ lpstat -p -d
CUPSマニュアルから。
lpoptions -d printername
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 + cut:
$ lpstat -a | cut -f1 -d ' '
猫+ grep +カットイン/etc/printcap
:
$ cat /etc/printcap | cut -f1 -d'|' | grep '^#' -v
これは、1行に1つずつ表示されます。
HP_LaserJet_P1606dn
HP_Deskjet_2540_series
HP_LaserJet_M1212nf
GCP-Save_to_Google_Docs
lpstat
ソリューションはよりエレガントで信頼性が高いと感じています。主に、/etc/printcap
テストした一部のシステムで見つからなかったためです。
awk
またはの使用についてcut
は、インストールしたものと好みによって異なります。bash read + bash arrayオプションは、外部を必要とせずにbashシェルで動作するはずです。
編集:マークされたソリューションはAmazon Linux上で私のために機能しないと言いました。しかし、残りの出力の途中からプリンター名をコピーしたいだけならうまくいくと思います。を使用した場合と同じように機能します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 -p -d
いるようです…
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
私が与えた例では動作しません。
lpq
。