lp vs lpr on Linux

Although both lp and lpr do the same thing (submit a file for printing) and are both part of CUPS, the two commands have different syntaxes. The man page for lp is more extensive because it documents many common -o options.

Switch lp interpretation (SysV) lpr interpretation (BSD)
-h unused servername[:port]
-c backward compatibility only unused
-d Destination/instance unused
-h hostname[:port] Disable job banner page
-i Job ID to modify unused
-l unused See -o raw
-m Send email on job completion
-n Number of copies unused
-o option[=value] Set printing option(s)
-p unused See -o prettyprint
-q Priority 1 (low) .. 100 (high) Hold job
-r unused Delete print file after submission
-s Silent: don’t print job number unused
-t Job title unused
-C/-J/-T unused Job title
-E Force encryption when connecting to the server
-H time Hold, or print at time server[:port]
-P Specify page(s) to print unused
-U Username to use when connecting to the server
-# unused (-# n) Number of copies