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