How to display printer information, such as printer description or printer location using command line tools?

lpstat -t lists printer names, classes and devices for printers, but it doesn't list printer description or location. Is there a way to get this information without using http or GUI interface?


You can obtain this information with lpstat -l -p printername.

[root@Valley ~]# lpstat -l -p zebra2
printer zebra2 is idle.  enabled since Tue Jun  8 15:50:35 2010
        Form mounted:
        Content types: any
        Printer types: unknown
        Description: Zebra 105SL in shipping
        Alerts: none
        Location: Shipping
        Connection: direct
        On fault: no alert
        After fault: continue
        Users allowed:
        Forms allowed:
        Banner required
        Charset sets:
        Default pitch:
        Default page size:
        Default port settings:
  • Thanks, this helps. Do you know if the returned field names are locale aware, or will they always default to English? – tresf Mar 22 '16 at 17:25
  • I do not know, but you can check at cups.org and with your specific distribution of Linux. – ewwhite Mar 22 '16 at 17:26
  • Turns out it is. Exporting LANG=C does the trick to force en_US. If calling this command with Apple, an additional export SOFTWARE= (blank) needs to be provided to bypass the locale used by the desktop. Why mention this? If you are parsing the output of this command wight a script (e.g. grep "Description:"), forcing locale is a good idea, or else the logic could fail on a non-English desktop/terminal. – tresf Apr 20 '16 at 2:34

This is a bit more global, for everything eliminate the grep statement.

for i in $( lpstat -v | awk '{ print $3 }' | tr ':' ' ' ) ; do lpstat -l -p $i | grep 'printer\|Location' ; done

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.