]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - usr.bin/diff/diff.1
contrib/bc: update to version 5.2.3
[FreeBSD/FreeBSD.git] / usr.bin / diff / diff.1
1 .\" $OpenBSD: diff.1,v 1.47 2015/11/24 19:35:41 jmc Exp $
2 .\"
3 .\" Copyright (c) 1980, 1990, 1993
4 .\"     The Regents of the University of California.  All rights reserved.
5 .\"
6 .\" Redistribution and use in source and binary forms, with or without
7 .\" modification, are permitted provided that the following conditions
8 .\" are met:
9 .\" 1. Redistributions of source code must retain the above copyright
10 .\"    notice, this list of conditions and the following disclaimer.
11 .\" 2. Redistributions in binary form must reproduce the above copyright
12 .\"    notice, this list of conditions and the following disclaimer in the
13 .\"    documentation and/or other materials provided with the distribution.
14 .\" 3. Neither the name of the University nor the names of its contributors
15 .\"    may be used to endorse or promote products derived from this software
16 .\"    without specific prior written permission.
17 .\"
18 .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
19 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21 .\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
22 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28 .\" SUCH DAMAGE.
29 .\"
30 .\"     @(#)diff.1      8.1 (Berkeley) 6/30/93
31 .\" $FreeBSD$
32 .\"
33 .Dd June 19, 2020
34 .Dt DIFF 1
35 .Os
36 .Sh NAME
37 .Nm diff
38 .Nd differential file and directory comparator
39 .Sh SYNOPSIS
40 .Nm diff
41 .Op Fl aBbdipTtw
42 .Oo
43 .Fl c | e | f |
44 .Fl n | q | u | y
45 .Oc
46 .Op Fl -brief
47 .Op Fl -color Ns = Ns Ar when
48 .Op Fl -changed-group-format Ar GFMT
49 .Op Fl -ed
50 .Op Fl -expand-tabs
51 .Op Fl -forward-ed
52 .Op Fl -ignore-all-space
53 .Op Fl -ignore-case
54 .Op Fl -ignore-space-change
55 .Op Fl -initial-tab
56 .Op Fl -minimal
57 .Op Fl -no-ignore-file-name-case
58 .Op Fl -normal
59 .Op Fl -rcs
60 .Op Fl -show-c-function
61 .Op Fl -starting-file
62 .Op Fl -speed-large-files
63 .Op Fl -strip-trailing-cr
64 .Op Fl -tabsize Ar number
65 .Op Fl -text
66 .Op Fl -unified
67 .Op Fl I Ar pattern | Fl -ignore-matching-lines Ar pattern
68 .Op Fl F Ar pattern | Fl -show-function-line Ar pattern
69 .Op Fl L Ar label | Fl -label Ar label
70 .Ar file1 file2
71 .Nm diff
72 .Op Fl aBbdilpTtw
73 .Op Fl I Ar pattern | Fl -ignore-matching-lines Ar pattern
74 .Op Fl F Ar pattern | Fl -show-function-line Ar pattern
75 .Op Fl L Ar label | Fl -label Ar label
76 .Op Fl -brief
77 .Op Fl -color Ns = Ns Ar when
78 .Op Fl -changed-group-format Ar GFMT
79 .Op Fl -ed
80 .Op Fl -expand-tabs
81 .Op Fl -forward-ed
82 .Op Fl -ignore-all-space
83 .Op Fl -ignore-case
84 .Op Fl -ignore-space-change
85 .Op Fl -initial-tab
86 .Op Fl -minimal
87 .Op Fl -no-ignore-file-name-case
88 .Op Fl -normal
89 .Op Fl -paginate
90 .Op Fl -rcs
91 .Op Fl -show-c-function
92 .Op Fl -speed-large-files
93 .Op Fl -starting-file
94 .Op Fl -strip-trailing-cr
95 .Op Fl -tabsize Ar number
96 .Op Fl -text
97 .Fl C Ar number | -context Ar number
98 .Ar file1 file2
99 .Nm diff
100 .Op Fl aBbdiltw
101 .Op Fl I Ar pattern | Fl -ignore-matching-lines Ar pattern
102 .Op Fl -brief
103 .Op Fl -color Ns = Ns Ar when
104 .Op Fl -changed-group-format Ar GFMT
105 .Op Fl -ed
106 .Op Fl -expand-tabs
107 .Op Fl -forward-ed
108 .Op Fl -ignore-all-space
109 .Op Fl -ignore-case
110 .Op Fl -ignore-space-change
111 .Op Fl -initial-tab
112 .Op Fl -minimal
113 .Op Fl -no-ignore-file-name-case
114 .Op Fl -normal
115 .Op Fl -paginate
116 .Op Fl -rcs
117 .Op Fl -show-c-function
118 .Op Fl -speed-large-files
119 .Op Fl -starting-file
120 .Op Fl -strip-trailing-cr
121 .Op Fl -tabsize Ar number
122 .Op Fl -text
123 .Fl D Ar string | Fl -ifdef Ar string
124 .Ar file1 file2
125 .Nm diff
126 .Op Fl aBbdilpTtw
127 .Op Fl I Ar pattern | Fl -ignore-matching-lines Ar pattern
128 .Op Fl F Ar pattern | Fl -show-function-line Ar pattern
129 .Op Fl L Ar label | Fl -label Ar label
130 .Op Fl -brief
131 .Op Fl -color Ns = Ns Ar when
132 .Op Fl -changed-group-format Ar GFMT
133 .Op Fl -ed
134 .Op Fl -expand-tabs
135 .Op Fl -forward-ed
136 .Op Fl -ignore-all-space
137 .Op Fl -ignore-case
138 .Op Fl -ignore-space-change
139 .Op Fl -initial-tab
140 .Op Fl -minimal
141 .Op Fl -no-ignore-file-name-case
142 .Op Fl -normal
143 .Op Fl -paginate
144 .Op Fl -rcs
145 .Op Fl -show-c-function
146 .Op Fl -speed-large-files
147 .Op Fl -starting-file
148 .Op Fl -strip-trailing-cr
149 .Op Fl -tabsize Ar number
150 .Op Fl -text
151 .Fl U Ar number | Fl -unified Ar number
152 .Ar file1 file2
153 .Nm diff
154 .Op Fl aBbdilNPprsTtw
155 .Oo
156 .Fl c | e | f |
157 .Fl n | q | u
158 .Oc
159 .Op Fl -brief
160 .Op Fl -color Ns = Ns Ar when
161 .Op Fl -changed-group-format Ar GFMT
162 .Op Fl -context
163 .Op Fl -ed
164 .Op Fl -expand-tabs
165 .Op Fl -forward-ed
166 .Op Fl -ignore-all-space
167 .Op Fl -ignore-case
168 .Op Fl -ignore-space-change
169 .Op Fl -initial-tab
170 .Op Fl -minimal
171 .Op Fl -new-file
172 .Op Fl -no-ignore-file-name-case
173 .Op Fl -normal
174 .Op Fl -paginate
175 .Op Fl -rcs
176 .Op Fl -recursive
177 .Op Fl -report-identical-files
178 .Op Fl -show-c-function
179 .Op Fl -speed-large-files
180 .Op Fl -strip-trailing-cr
181 .Op Fl -tabsize Ar number
182 .Op Fl -text
183 .Op Fl -unidirectional-new-file
184 .Op Fl -unified
185 .Op Fl I Ar pattern | Fl -ignore-matching-lines Ar pattern
186 .Op Fl F Ar pattern | Fl -show-function-line Ar pattern
187 .Bk -words
188 .Op Fl L Ar label | Fl -label Ar label
189 .Op Fl S Ar name | Fl -starting-file Ar name
190 .Op Fl X Ar file | Fl -exclude-from Ar file
191 .Op Fl x Ar pattern | Fl -exclude Ar pattern
192 .Ek
193 .Ar dir1 dir2
194 .Nm diff
195 .Op Fl aBbditwW
196 .Op Fl -color Ns = Ns Ar when
197 .Op Fl -expand-tabs
198 .Op Fl -ignore-all-blanks
199 .Op Fl -ignore-blank-lines
200 .Op Fl -ignore-case
201 .Op Fl -minimal
202 .Op Fl -no-ignore-file-name-case
203 .Op Fl -strip-trailing-cr
204 .Op Fl -suppress-common-lines
205 .Op Fl -tabsize Ar number
206 .Op Fl -text
207 .Op Fl -width
208 .Fl y | Fl -side-by-side
209 .Ar file1 file2
210 .Sh DESCRIPTION
211 The
212 .Nm
213 utility compares the contents of
214 .Ar file1
215 and
216 .Ar file2
217 and writes to the standard output the list of changes necessary to
218 convert one file into the other.
219 No output is produced if the files are identical.
220 .Pp
221 Output options (mutually exclusive):
222 .Bl -tag -width Ds
223 .It Fl C Ar number Fl -context Ar number
224 Like
225 .Fl c
226 but produces a diff with
227 .Ar number
228 lines of context.
229 .It Fl c
230 Produces a diff with 3 lines of context.
231 With
232 .Fl c
233 the output format is modified slightly:
234 the output begins with identification of the files involved and
235 their creation dates and then each change is separated
236 by a line with fifteen
237 .Li * Ns 's .
238 The lines removed from
239 .Ar file1
240 are marked with
241 .Sq \&-\ \& ;
242 those added to
243 .Ar file2
244 are marked
245 .Sq +\ \& .
246 Lines which are changed from one file to the other are marked in
247 both files with
248 .Sq !\ \& .
249 Changes which lie within 3 lines of each other are grouped together on
250 output.
251 .It Fl D Ar string Fl -ifdef Ar string
252 Creates a merged version of
253 .Ar file1
254 and
255 .Ar file2
256 on the standard output, with C preprocessor controls included so that
257 a compilation of the result without defining
258 .Ar string
259 is equivalent to compiling
260 .Ar file1 ,
261 while defining
262 .Ar string
263 will yield
264 .Ar file2 .
265 .It Fl e -ed
266 Produces output in a form suitable as input for the editor utility,
267 .Xr ed 1 ,
268 which can then be used to convert file1 into file2.
269 .Pp
270 Extra commands are added to the output when comparing directories with
271 .Fl e ,
272 so that the result is a
273 .Xr sh 1
274 script for converting text files which are common to the two directories
275 from their state in
276 .Ar dir1
277 to their state in
278 .Ar dir2 .
279 .It Fl f -forward-ed
280 Identical output to that of the
281 .Fl e
282 flag, but in reverse order.
283 It cannot be digested by
284 .Xr ed 1 .
285 .It Fl n
286 Produces a script similar to that of
287 .Fl e ,
288 but in the opposite order and with a count of changed lines on each
289 insert or delete command.
290 This is the form used by rcsdiff.
291 .It Fl q -brief
292 Just print a line when the files differ.
293 Does not output a list of changes.
294 .It Fl U Ar number Fl -unified Ar number
295 Like
296 .Fl u
297 but produces a diff with
298 .Ar number
299 lines of context.
300 .It Fl u
301 Produces a
302 .Em unified
303 diff with 3 lines of context.
304 A unified diff is similar to the context diff produced by the
305 .Fl c
306 option.
307 However, unlike with
308 .Fl c ,
309 all lines to be changed (added and/or removed) are present in
310 a single section.
311 .It Fl y Fl -side-by-side
312 Output in two columns with a marker between them.
313 The marker can be one
314 of the following:
315 .Pp
316 .Bl -tag -width Ds -offset indent -compact
317 .It space
318 Corresponding lines are identical.
319 .It '|'
320 Corresponding lines are different.
321 .It '<'
322 Files differ and only the first file contains the line.
323 .It '>'
324 Files differ and only the second file contains the line.
325 .El
326 .El
327 .Pp
328 Comparison options:
329 .Bl -tag -width Ds
330 .It Fl a -text
331 Treat all files as ASCII text.
332 Normally
333 .Nm
334 will simply print
335 .Dq Binary files ... differ
336 if files contain binary characters.
337 Use of this option forces
338 .Nm
339 to produce a diff.
340 .It Fl B Fl -ignore-blank-lines
341 Causes chunks that include only blank lines to be ignored.
342 .It Fl b -ignore-space-change
343 Causes trailing blanks (spaces and tabs) to be ignored, and other
344 strings of blanks to compare equal.
345 .It Fl -color= Ns Oo Ar when Oc
346 Color the additions green, and removals red, or the value in the
347 .Ev DIFFCOLORS
348 environment variable.
349 The possible values of
350 .Ar when
351 are
352 .Dq Cm never ,
353 .Dq Cm always
354 and
355 .Dq Cm auto .
356 .Cm auto
357 will use color if the output is a tty and the
358 .Ev COLORTERM
359 environment variable is set to a non-empty string.
360 .It Fl d -minimal
361 Try very hard to produce a diff as small as possible.
362 This may consume a lot of processing power and memory when processing
363 large files with many changes.
364 .It Fl F Ar pattern, Fl -show-function-line Ar pattern
365 Like
366 .Fl p,
367 but display the last line that matches provided pattern.
368 .It Fl I Ar pattern Fl -ignore-matching-lines Ar pattern
369 Ignores changes, insertions, and deletions whose lines match the
370 extended regular expression
371 .Ar pattern .
372 Multiple
373 .Fl I
374 patterns may be specified.
375 All lines in the change must match some pattern for the change to be
376 ignored.
377 See
378 .Xr re_format 7
379 for more information on regular expression patterns.
380 .It Fl i -ignore-case
381 Ignores the case of letters.
382 E.g.,
383 .Dq A
384 will compare equal to
385 .Dq a .
386 .It Fl l -paginate
387 Pass the output through
388 .Xr pr 1
389 to paginate it.
390 .It Fl L Ar label Fl -label Ar label
391 Print
392 .Ar label
393 instead of the first (and second, if this option is specified twice)
394 file name and time in the context or unified diff header.
395 .It Fl p -show-c-function
396 With unified and context diffs, show with each change
397 the first 40 characters of the last line before the context beginning
398 with a letter, an underscore or a dollar sign.
399 For C and Objective-C source code following standard layout conventions, this
400 will show the prototype of the function the change applies to.
401 .It Fl T -initial-tab
402 Print a tab rather than a space before the rest of the line for the
403 normal, context or unified output formats.
404 This makes the alignment of tabs in the line consistent.
405 .It Fl t -expand-tabs
406 Will expand tabs in output lines.
407 Normal or
408 .Fl c
409 output adds character(s) to the front of each line which may screw up
410 the indentation of the original source lines and make the output listing
411 difficult to interpret.
412 This option will preserve the original source's indentation.
413 .It Fl w -ignore-all-blanks
414 Is similar to
415 .Fl b -ignore-space-change
416 but causes whitespace (blanks and tabs) to be totally ignored.
417 E.g.,
418 .Dq if (\ \&a == b \&)
419 will compare equal to
420 .Dq if(a==b) .
421 .It Fl W Ar number Fl -width Ar number
422 Output at most
423 .Ar number
424 columns when using side by side format.
425 The default value is 130.
426 .It Fl -changed-group-format Ar GFMT
427 Format input groups in the provided
428 .Pp
429 the format is a string with special keywords:
430 .Bl -tag -width %<
431 .It %<
432 lines from FILE1
433 .It %<
434 lines from FILE2
435 .El
436 .It Fl -ignore-file-name-case
437 ignore case when comparing file names
438 .It Fl -no-ignore-file-name-case
439 do not ignore case wen comparing file names (default)
440 .It Fl -normal
441 default diff output
442 .It Fl -speed-large-files
443 stub option for compatibility with GNU diff
444 .It Fl -strip-trailing-cr
445 strip carriage return on input files
446 .It Fl -suppress-common-lines
447 Do not output common lines when using the side by side format
448 .It Fl -tabsize Ar number
449 Number of spaces representing a tab (default 8)
450 .El
451 .Pp
452 Directory comparison options:
453 .Bl -tag -width Ds
454 .It Fl N -new-file
455 If a file is found in only one directory, act as if it was found in the
456 other directory too but was of zero size.
457 .It Fl P -unidirectional-new-file
458 If a file is found only in
459 .Ar dir2 ,
460 act as if it was found in
461 .Ar dir1
462 too but was of zero size.
463 .It Fl r -recursive
464 Causes application of
465 .Nm
466 recursively to common subdirectories encountered.
467 .It Fl S Ar name Fl -starting-file Ar name
468 Re-starts a directory
469 .Nm
470 in the middle, beginning with file
471 .Ar name .
472 .It Fl s -report-identical-files
473 Causes
474 .Nm
475 to report files which are the same, which are otherwise not mentioned.
476 .It Fl X Ar file Fl -exclude-from Ar file
477 Exclude files and subdirectories from comparison whose basenames match
478 lines in
479 .Ar file .
480 Multiple
481 .Fl X
482 options may be specified.
483 .It Fl x Ar pattern Fl -exclude Ar pattern
484 Exclude files and subdirectories from comparison whose basenames match
485 .Ar pattern .
486 Patterns are matched using shell-style globbing via
487 .Xr fnmatch 3 .
488 Multiple
489 .Fl x
490 options may be specified.
491 .El
492 .Pp
493 If both arguments are directories,
494 .Nm
495 sorts the contents of the directories by name, and then runs the
496 regular file
497 .Nm
498 algorithm, producing a change list,
499 on text files which are different.
500 Binary files which differ,
501 common subdirectories, and files which appear in only one directory
502 are described as such.
503 In directory mode only regular files and directories are compared.
504 If a non-regular file such as a device special file or FIFO is encountered,
505 a diagnostic message is printed.
506 .Pp
507 If only one of
508 .Ar file1
509 and
510 .Ar file2
511 is a directory,
512 .Nm
513 is applied to the non-directory file and the file contained in
514 the directory file with a filename that is the same as the
515 last component of the non-directory file.
516 .Pp
517 If either
518 .Ar file1
519 or
520 .Ar file2
521 is
522 .Sq - ,
523 the standard input is
524 used in its place.
525 .Ss Output Style
526 The default (without
527 .Fl e ,
528 .Fl c ,
529 or
530 .Fl n -rcs
531 .\" -C
532 options)
533 output contains lines of these forms, where
534 .Va XX , YY , ZZ , QQ
535 are line numbers respective of file order.
536 .Pp
537 .Bl -tag -width "XX,YYcZZ,QQ" -compact
538 .It Li XX Ns Ic a Ns Li YY
539 At (the end of) line
540 .Va XX
541 of
542 .Ar file1 ,
543 append the contents
544 of line
545 .Va YY
546 of
547 .Ar file2
548 to make them equal.
549 .It Li XX Ns Ic a Ns Li YY,ZZ
550 Same as above, but append the range of lines,
551 .Va YY
552 through
553 .Va ZZ
554 of
555 .Ar file2
556 to line
557 .Va XX
558 of file1.
559 .It Li XX Ns Ic d Ns Li YY
560 At line
561 .Va XX
562 delete
563 the line.
564 The value
565 .Va YY
566 tells to which line the change would bring
567 .Ar file1
568 in line with
569 .Ar file2 .
570 .It Li XX,YY Ns Ic d Ns Li ZZ
571 Delete the range of lines
572 .Va XX
573 through
574 .Va YY
575 in
576 .Ar file1 .
577 .It Li XX Ns Ic c Ns Li YY
578 Change the line
579 .Va XX
580 in
581 .Ar file1
582 to the line
583 .Va YY
584 in
585 .Ar file2 .
586 .It Li XX,YY Ns Ic c Ns Li ZZ
587 Replace the range of specified lines with the line
588 .Va ZZ .
589 .It Li XX,YY Ns Ic c Ns Li ZZ,QQ
590 Replace the range
591 .Va XX , Ns Va YY
592 from
593 .Ar file1
594 with the range
595 .Va ZZ , Ns Va QQ
596 from
597 .Ar file2 .
598 .El
599 .Pp
600 These lines resemble
601 .Xr ed 1
602 subcommands to convert
603 .Ar file1
604 into
605 .Ar file2 .
606 The line numbers before the action letters pertain to
607 .Ar file1 ;
608 those after pertain to
609 .Ar file2 .
610 Thus, by exchanging
611 .Ic a
612 for
613 .Ic d
614 and reading the line in reverse order, one can also
615 determine how to convert
616 .Ar file2
617 into
618 .Ar file1 .
619 As in
620 .Xr ed 1 ,
621 identical
622 pairs (where num1 = num2) are abbreviated as a single
623 number.
624 .Sh ENVIRONMENT
625 .Bl -tag -width DIFFCOLORS
626 .It Ev DIFFCOLORS
627 The value of this variable is the form
628 .Ar add Ns : Ns Ar rm ,
629 where
630 .Ar add
631 is the ASCII escape sequence for additions and
632 .Ar rm
633 is the ASCII escape sequence for deletions.
634 If this is unset,
635 .Nm
636 uses green for additions and red for removals.
637 .El
638 .Sh FILES
639 .Bl -tag -width /tmp/diff.XXXXXXXX -compact
640 .It Pa /tmp/diff.XXXXXXXX
641 Temporary file used when comparing a device or the standard input.
642 Note that the temporary file is unlinked as soon as it is created
643 so it will not show up in a directory listing.
644 .El
645 .Sh EXIT STATUS
646 The
647 .Nm
648 utility exits with one of the following values:
649 .Pp
650 .Bl -tag -width Ds -offset indent -compact
651 .It 0
652 No differences were found.
653 .It 1
654 Differences were found.
655 .It >1
656 An error occurred.
657 .El
658 .Sh EXAMPLES
659 Compare
660 .Pa old_dir
661 and
662 .Pa new_dir
663 recursively generating an unified diff and treating files found only in one
664 of those directories as new files:
665 .Bd -literal -offset indent
666 $ diff -ruN /path/to/old_dir /path/to/new_dir
667 .Ed
668 .Pp
669 Same as above but excluding files matching the expressions
670 .Dq *.h
671 and
672 .Dq *.c :
673 .Bd -literal -offset indent
674 $ diff -ruN -x '*.h' -x '*.c' /path/to/old_dir /path/to/new_dir
675 .Ed
676 .Pp
677 Show a single line indicating if the files differ:
678 .Bd -literal -offset indent
679 $ diff -q /boot/loader.conf /boot/defaults/loader.conf
680 Files /boot/loader.conf and /boot/defaults/loader.conf differ
681 .Ed
682 .Pp
683 Assuming a file named
684 .Pa example.txt
685 with the following contents:
686 .Bd -literal -offset indent
687 FreeBSD is an operating system
688 Linux is a kernel
689 OpenBSD is an operating system
690 .Ed
691 .Pp
692 Compare stdin with
693 .Pa example.txt
694 excluding from the comparison those lines containing either
695 .Qq Linux
696 or
697 .Qq Open :
698 .Bd -literal -offset indent
699 $ echo "FreeBSD is an operating system" | diff -q -I 'Linux|Open' example.txt -
700 .Ed
701 .Sh SEE ALSO
702 .Xr cmp 1 ,
703 .Xr comm 1 ,
704 .Xr diff3 1 ,
705 .Xr ed 1 ,
706 .Xr patch 1 ,
707 .Xr pr 1 ,
708 .Xr sdiff 1
709 .Rs
710 .%A James W. Hunt
711 .%A M. Douglas McIlroy
712 .%T "An Algorithm for Differential File Comparison"
713 .%J Computing Science Technical Report
714 .%Q Bell Laboratories 41
715 .%D June 1976
716 .Re
717 .Sh STANDARDS
718 The
719 .Nm
720 utility is compliant with the
721 .St -p1003.1-2008
722 specification.
723 .Pp
724 The flags
725 .Op Fl aDdIiLlNnPpqSsTtwXxy
726 are extensions to that specification.
727 .Sh HISTORY
728 A
729 .Nm
730 command appeared in
731 .At v6 .