---
name: "lpr"
section: "1"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["linux", "freebsd", "openbsd", "macos"]
url: "https://new.carta.tech/lpr"
---

# lpr(1)

off line print

## NAME

**lpr** – off line print

## SYNOPSIS

**lpr** \[**-P***printer*\] \[**-#***num*\] \[**-C** *class*\] \[**-J** *job*\] \[**-L** *locale*\] \[**-T** *title*\] \[**-U** *user*\] \[**-Z** *daemon-options*\] \[**-i** *numcols*\] \[**-1234** *font*\] \[**-w** *num*\] \[**-cdfghlnmprstv**\] \[*name* *...*\]

## DEPRECATION NOTICE

This facility is scheduled for removal prior to the release of FreeBSD 16.0.

## DESCRIPTION

The **lpr** utility uses a spooling daemon to print the named files when facilities become available. If no names appear, the standard input is assumed.

The following single letter options are used to notify the line printer spooler that the files are not standard text files. The spooling daemon will use the appropriate filters to print the data accordingly. Note that not all spoolers implement filters for all data types, and some sites may use these types for other purposes than the ones described here.

- **-d**

  The files are assumed to contain data in DVI format from the TeX typesetting system.

- **-f**

  Use a filter which interprets the first character of each line as a standard FORTRAN carriage control character.

- **-l**

  Use a filter which allows control characters to be printed and suppresses page breaks.

- **-p**

  Use [pr(1)](/pr/1.md) to format the files.

The following options are historical and not directly supported by any software included in FreeBSD.

- **-c**

  The files are assumed to contain data produced by cifplot(1).

- **-g**

  The files are assumed to contain standard plot data as produced by the UNIX plot(3) routines.

- **-n**

  The files are assumed to contain data from *ditroff* (device independent troff).

- **-t**

  The files are assumed to contain C/A/T phototypesetter commands from ancient versions of UNIX [troff(1)](/troff/1.md) (*ports/textproc/groff*).

- **-v**

  The files are assumed to contain a raster image for devices like the Benson Variant.

These options apply to the handling of the print job:

- **-P**

  Force output to a specific printer. Normally, the default printer is used (site dependent), or the value of the environment variable PRINTER is used.

- **-h**

  Suppress the printing of the burst page.

- **-m**

  Send mail upon completion.

- **-r**

  Remove the file upon completion of spooling or upon completion of printing (with the **-s** option).

- **-s**

  Use symbolic links. Usually files are copied to the spool directory. The **-s** option will use [symlink(2)](/symlink/2.md) to link data files rather than trying to copy them so large files can be printed. This means the files should not be modified or removed until they have been printed.

The remaining options apply to copies, the page display, and headers:

- **-#***num*

  The quantity *num* is the number of copies desired of each file named. For example,

  ```
  lpr -#3 foo.c bar.c more.c
  ```

  would result in 3 copies of the file foo.c, followed by 3 copies of the file bar.c, etc. On the other hand,

  ```
  cat foo.c bar.c more.c | lpr -#3
  ```

  will give three copies of the concatenation of the files. Often a site will disable this feature to encourage use of a photocopier instead.

-

  **-**\[**1234**\] *font* Specifies a *font* to be mounted on font position *i*. The daemon will construct a .railmag file referencing the font pathname.

- **-C** *class*

  Job classification to use on the burst page. For example,

  ```
  lpr -C EECS foo.c
  ```

  causes the system name (the name returned by [hostname(1)](/hostname/1.md)) to be replaced on the burst page by EECS, and the file foo.c to be printed.

- **-J** *job*

  Job name to print on the burst page. Normally, the first file's name is used.

- **-L** *locale*

  Use *locale* specified as argument instead of one found in environment. (Only effective when filtering through [pr(1)](/pr/1.md) is requested using the **-p** option.)

- **-T** *title*

  Title name for [pr(1)](/pr/1.md), instead of the file name.

- **-U** *user*

  User name to print on the burst page, also for accounting purposes. This option is only honored if the real user-id is daemon (or that specified in the printcap file instead of daemon), and is intended for those instances where print filters wish to requeue jobs.

- **-Z** *daemon-options*

  Some spoolers, such as LPRng, accept additional per-job options using a ‘Z’ control line. When **-Z** is specified, and **-p** ([pr(1)](/pr/1.md)) is not requested, the specified *daemon-options* will be passed to the remote LPRng spooler.

- **-i** *numcols*

  The output is indented by (*numcols*).

- **-w** *num*

  Uses *num* as the page width for [pr(1)](/pr/1.md).

## ENVIRONMENT

If the following environment variable exists, it is used by **lpr**:

- PRINTER

  Specifies an alternate default printer.

## FILES

- */etc/passwd*

  Personal identification.

- */etc/printcap*

  Printer capabilities data base.

- */usr/sbin/lpd*

  Line printer daemons.

- */var/spool/output/\**

  Directories used for spooling.

- */var/spool/output/\*/cf\**

  Daemon control files.

- */var/spool/output/\*/df\**

  Data files specified in "cf" files.

- */var/spool/output/\*/tf\**

  Temporary copies of "cf" files.

## DIAGNOSTICS

If you try to spool too large a file, it will be truncated. The **lpr** utility will object to printing binary files. If a user other than root prints a file and spooling is disabled, **lpr** will print a message saying so and will not put jobs in the queue. If a connection to [lpd(8)](/lpd/8.md) on the local machine cannot be made, **lpr** will say that the daemon cannot be started. Diagnostics may be printed in the daemon's log file regarding missing spool files by [lpd(8)](/lpd/8.md).

## SEE ALSO

[lpq(1)](/lpq/1.md), [lprm(1)](/lprm/1.md), [pr(1)](/pr/1.md), [symlink(2)](/symlink/2.md), [printcap(5)](/printcap/5.md), [lpc(8)](/lpc/8.md), [lpd(8)](/lpd/8.md)

## HISTORY

The **lpr** command appeared in 3BSD.

## BUGS

Fonts for [troff(1)](/troff/1.md) (*ports/textproc/groff*) and TeX reside on the host with the printer. It is currently not possible to use local font libraries.

The ‘Z’ control file line is used for two different purposes; for standard FreeBSD [lpd(8)](/lpd/8.md), it specifies a locale to be passed to [pr(1)](/pr/1.md). For LPRng [lpd(8)](/lpd/8.md), it specifies additional options to be interpreted by the spooler's input and output filters. When submitting jobs via **lpr**, **-p** **-L** *locale* is used in the former context, and **-Z** *daemon-options* is used in the latter.
