Lpr के साथ उपयोग के लिए स्वीकार्य प्रिंटर नामों को कैसे सूचीबद्ध करें?


64

lprआदमी पेज एक गंतव्य प्रिंटर के साथ निर्दिष्ट किया जा सकता का कहना है -Pझंडा।

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

मैंने Ubuntu / Gnome में GUI का उपयोग करते हुए स्थानीय सांबा शेयरों पर विभिन्न प्रिंटरों को 'जोड़ा' है। मैं प्रारूप में इन उपलब्ध प्रिंटरों की सूची कैसे प्राप्त कर सकता हूं कि -Pझंडा उम्मीद करता है (अधिमानतः बैश शेल से)?

जवाबों:


98
$ lpstat -p -d

से कप मैनुअल


4
धन्यवाद! मैंने अभी पाया है कि lpqकाम भी करता है।
इयान मैकिनॉन

6
जब भी मैं इसकी तलाश कर रहा हूं, मैं एक डिफ़ॉल्ट प्रिंटर लेने के लिए भी देख रहा हूं:lpoptions -d printername
जोशुआ गोल्डबर्ग

12

एक सूची प्राप्त करने के लिए आप इसका उपयोग कर सकते हैं:

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 + कट:

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

बिल्ली + जीआरपी + कट /etc/printcap:

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

यह दिखाया गया है, प्रति पंक्ति एक:

HP_LaserJet_P1606dn
HP_Deskjet_2540_series
HP_LaserJet_M1212nf
GCP-Save_to_Google_Docs

मुझे लगता है कि lpstatसमाधान अधिक सुरुचिपूर्ण और विश्वसनीय हैं। ज्यादातर इसलिए /etc/printcapकि मुझे परीक्षण किए गए कुछ प्रणालियों पर नहीं मिला था।

उपयोग करने के बारे में awkया cut, इस बात पर निर्भर करता है कि आपने क्या स्थापित किया है और क्या पसंद करते हैं। बैश रीड + बैश ऐरे ऑप्शन को एक्सटर्नल की आवश्यकता के बिना किसी भी बैश शेल पर काम करना चाहिए।

संपादित करें: मैंने कहा कि चिह्नित समाधान अमेज़न लिनक्स पर मेरे लिए कोई काम नहीं करता है। लेकिन मुझे लगता है कि यह काम करता है अगर आप सिर्फ प्रिंटर के नाम को बाकी आउटपुट के बीच से कॉपी करना चाहते हैं। बस के उपयोग के रूप में ही काम करता है 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 + कट OS X पर भी काम करेगा।
tresf

आपके आउटपुट नमूने के अनुसार, 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मेरे द्वारा दिए गए उदाहरण में काम नहीं करता है।
गस नेव्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.