xref: /illumos-gate/usr/src/man/man1/diff.1 (revision bbf215553c7233fbab8a0afdf1fac74c44781867)
166492cf0SYuri Pankov.\"
266492cf0SYuri Pankov.\" Sun Microsystems, Inc. gratefully acknowledges The Open Group for
366492cf0SYuri Pankov.\" permission to reproduce portions of its copyrighted documentation.
466492cf0SYuri Pankov.\" Original documentation from The Open Group can be obtained online at
5c10c16deSRichard Lowe.\" http://www.opengroup.org/bookstore/.
666492cf0SYuri Pankov.\"
766492cf0SYuri Pankov.\" The Institute of Electrical and Electronics Engineers and The Open
866492cf0SYuri Pankov.\" Group, have given us permission to reprint portions of their
966492cf0SYuri Pankov.\" documentation.
1066492cf0SYuri Pankov.\"
1166492cf0SYuri Pankov.\" In the following statement, the phrase ``this text'' refers to portions
1266492cf0SYuri Pankov.\" of the system documentation.
1366492cf0SYuri Pankov.\"
1466492cf0SYuri Pankov.\" Portions of this text are reprinted and reproduced in electronic form
1566492cf0SYuri Pankov.\" in the SunOS Reference Manual, from IEEE Std 1003.1, 2004 Edition,
1666492cf0SYuri Pankov.\" Standard for Information Technology -- Portable Operating System
1766492cf0SYuri Pankov.\" Interface (POSIX), The Open Group Base Specifications Issue 6,
1866492cf0SYuri Pankov.\" Copyright (C) 2001-2004 by the Institute of Electrical and Electronics
1966492cf0SYuri Pankov.\" Engineers, Inc and The Open Group.  In the event of any discrepancy
2066492cf0SYuri Pankov.\" between these versions and the original IEEE and The Open Group
2166492cf0SYuri Pankov.\" Standard, the original IEEE and The Open Group Standard is the referee
2266492cf0SYuri Pankov.\" document.  The original Standard can be obtained online at
2366492cf0SYuri Pankov.\" http://www.opengroup.org/unix/online.html.
2466492cf0SYuri Pankov.\"
25c10c16deSRichard Lowe.\" This notice shall appear on any product containing this material.
2666492cf0SYuri Pankov.\"
2766492cf0SYuri Pankov.\" The contents of this file are subject to the terms of the
2866492cf0SYuri Pankov.\" Common Development and Distribution License (the "License").
2966492cf0SYuri Pankov.\" You may not use this file except in compliance with the License.
3066492cf0SYuri Pankov.\"
3166492cf0SYuri Pankov.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3266492cf0SYuri Pankov.\" or http://www.opensolaris.org/os/licensing.
3366492cf0SYuri Pankov.\" See the License for the specific language governing permissions
3466492cf0SYuri Pankov.\" and limitations under the License.
3566492cf0SYuri Pankov.\"
3666492cf0SYuri Pankov.\" When distributing Covered Code, include this CDDL HEADER in each
3766492cf0SYuri Pankov.\" file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3866492cf0SYuri Pankov.\" If applicable, add the following below this CDDL HEADER, with the
3966492cf0SYuri Pankov.\" fields enclosed by brackets "[]" replaced with your own identifying
4066492cf0SYuri Pankov.\" information: Portions Copyright [yyyy] [name of copyright owner]
4166492cf0SYuri Pankov.\"
4266492cf0SYuri Pankov.\"
4366492cf0SYuri Pankov.\" Copyright 1989 AT&T
4466492cf0SYuri Pankov.\" Portions Copyright (c) 1992, X/Open Company Limited.  All Rights Reserved.
4566492cf0SYuri Pankov.\" Copyright (c) 2004, Sun Microsystems, Inc.  All Rights Reserved.
46d2b76ef7SAndy Fiddaman.\" Copyright 2022 OmniOS Community Edition (OmniOSce) Association.
4766492cf0SYuri Pankov.\"
48d2b76ef7SAndy Fiddaman.Dd February 23, 2022
49d2b76ef7SAndy Fiddaman.Dt DIFF 1
50d2b76ef7SAndy Fiddaman.Os
51d2b76ef7SAndy Fiddaman.Sh NAME
52d2b76ef7SAndy Fiddaman.Nm diff
53d2b76ef7SAndy Fiddaman.Nd compare two files
54d2b76ef7SAndy Fiddaman.Sh SYNOPSIS
55d2b76ef7SAndy Fiddaman.Nm
56d2b76ef7SAndy Fiddaman.Op Fl biqtw
57d2b76ef7SAndy Fiddaman.Op Fl c | e | f | h | n | u
58d2b76ef7SAndy Fiddaman.Ar file1
59d2b76ef7SAndy Fiddaman.Ar file2
60d2b76ef7SAndy Fiddaman.Nm
61d2b76ef7SAndy Fiddaman.Op Fl biqtw
62d2b76ef7SAndy Fiddaman.Op Fl C Ar number | Fl U Ar number
63d2b76ef7SAndy Fiddaman.Ar file1
64d2b76ef7SAndy Fiddaman.Ar file2
65d2b76ef7SAndy Fiddaman.Nm
66d2b76ef7SAndy Fiddaman.Op Fl biqtw
67d2b76ef7SAndy Fiddaman.Op Fl D Ar string
68d2b76ef7SAndy Fiddaman.Ar file1
69d2b76ef7SAndy Fiddaman.Ar file2
70d2b76ef7SAndy Fiddaman.Nm
71d2b76ef7SAndy Fiddaman.Op Fl biqtw
72d2b76ef7SAndy Fiddaman.Op Fl c | e | f | h | n | u
73d2b76ef7SAndy Fiddaman.Op Fl l
74d2b76ef7SAndy Fiddaman.Op Fl r
75d2b76ef7SAndy Fiddaman.Op Fl s
76d2b76ef7SAndy Fiddaman.Op Fl S Ar name
77d2b76ef7SAndy Fiddaman.Ar directory1
78d2b76ef7SAndy Fiddaman.Ar directory2
79d2b76ef7SAndy Fiddaman.Sh DESCRIPTION
80d2b76ef7SAndy FiddamanThe
81d2b76ef7SAndy Fiddaman.Nm
82d2b76ef7SAndy Fiddamanutility will compare the contents of
83d2b76ef7SAndy Fiddaman.Ar file1
84d2b76ef7SAndy Fiddamanand
85d2b76ef7SAndy Fiddaman.Ar file2
86d2b76ef7SAndy Fiddamanand write to standard output a list of changes necessary to convert
87d2b76ef7SAndy Fiddaman.Ar file1
88d2b76ef7SAndy Fiddamaninto
89d2b76ef7SAndy Fiddaman.Ar file2 .
90d2b76ef7SAndy FiddamanThis list should be minimal.
91d2b76ef7SAndy FiddamanExcept in rare circumstances,
92d2b76ef7SAndy Fiddaman.Nm
93d2b76ef7SAndy Fiddamanfinds a smallest sufficient set of file differences.
94d2b76ef7SAndy FiddamanNo output will be produced if the files are identical.
95d2b76ef7SAndy Fiddaman.Pp
96c10c16deSRichard LoweThe normal output contains lines of these forms:
97d2b76ef7SAndy Fiddaman.Pp
98d2b76ef7SAndy Fiddaman.Bl -item -offset indent -compact
99d2b76ef7SAndy Fiddaman.Sm off
100d2b76ef7SAndy Fiddaman.It
101d2b76ef7SAndy Fiddaman.Ar n1 Sy a Ar n3 , n4
102d2b76ef7SAndy Fiddaman.It
103d2b76ef7SAndy Fiddaman.Ar n1 , n2 Sy d Ar n3
104d2b76ef7SAndy Fiddaman.It
105d2b76ef7SAndy Fiddaman.Ar n1 , n2 Sy c Ar n3 , n4
106d2b76ef7SAndy Fiddaman.Sm on
107d2b76ef7SAndy Fiddaman.El
108d2b76ef7SAndy Fiddaman.Pp
109d2b76ef7SAndy Fiddamanwhere
110d2b76ef7SAndy Fiddaman.Ar n1
111d2b76ef7SAndy Fiddamanand
112d2b76ef7SAndy Fiddaman.Ar n2
113d2b76ef7SAndy Fiddamanrepresent lines in
114d2b76ef7SAndy Fiddaman.Ar file1
115d2b76ef7SAndy Fiddamanand
116d2b76ef7SAndy Fiddaman.Ar n3
117d2b76ef7SAndy Fiddamanand
118d2b76ef7SAndy Fiddaman.Ar n4
119d2b76ef7SAndy Fiddamanrepresent lines in
120d2b76ef7SAndy Fiddaman.Ar file2
121d2b76ef7SAndy FiddamanThese lines resemble
122d2b76ef7SAndy Fiddaman.Xr ed 1
123d2b76ef7SAndy Fiddamancommands to convert
124d2b76ef7SAndy Fiddaman.Ar file1
125d2b76ef7SAndy Fiddamanto
126d2b76ef7SAndy Fiddaman.Ar file2 .
127d2b76ef7SAndy FiddamanBy exchanging
128d2b76ef7SAndy Fiddaman.Sy a
129d2b76ef7SAndy Fiddamanfor
130d2b76ef7SAndy Fiddaman.Sy d
131d2b76ef7SAndy Fiddamanand reading backwards,
132d2b76ef7SAndy Fiddaman.Ar file2
133d2b76ef7SAndy Fiddamancan be converted to
134d2b76ef7SAndy Fiddaman.Ar file1 .
135d2b76ef7SAndy FiddamanAs in
136d2b76ef7SAndy Fiddaman.Xr ed 1 ,
137d2b76ef7SAndy Fiddamanidentical pairs, where
138d2b76ef7SAndy Fiddaman.Ar n1 Ns = Ns Ar n2
139d2b76ef7SAndy Fiddamanor
140d2b76ef7SAndy Fiddaman.Ar n3 Ns = Ns Ar n4
141d2b76ef7SAndy Fiddamanare abbreviated as a single number.
142d2b76ef7SAndy Fiddaman.Pp
143c10c16deSRichard LoweFollowing each of these lines come all the lines that are affected in the first
144d2b76ef7SAndy Fiddamanfile flagged by
145d2b76ef7SAndy Fiddaman.Sq < ,
146d2b76ef7SAndy Fiddamanthen all the lines that are affected in the second file flagged by
147d2b76ef7SAndy Fiddaman.Sq > .
148d2b76ef7SAndy Fiddaman.Sh OPTIONS
149c10c16deSRichard LoweThe following options are supported:
150d2b76ef7SAndy Fiddaman.Bl -tag -width Ds
151d2b76ef7SAndy Fiddaman.It Fl b
152d2b76ef7SAndy FiddamanIgnores trailing blanks
153d2b76ef7SAndy Fiddaman.Pq spaces and tabs
154d2b76ef7SAndy Fiddamanand treats other strings of blanks as equivalent.
155d2b76ef7SAndy Fiddaman.It Fl i
156d2b76ef7SAndy FiddamanIgnores the case of letters.
157d2b76ef7SAndy FiddamanFor example, `
158d2b76ef7SAndy Fiddaman.Sq A
159d2b76ef7SAndy Fiddamanwill compare equal to
160d2b76ef7SAndy Fiddaman.Sq a .
161d2b76ef7SAndy Fiddaman.It Fl q
162d2b76ef7SAndy Fiddamanreport only when files differ
163d2b76ef7SAndy Fiddaman.It Fl t
164d2b76ef7SAndy FiddamanExpands TAB characters in output lines.
165d2b76ef7SAndy FiddamanNormal or
166d2b76ef7SAndy Fiddaman.Fl c
167d2b76ef7SAndy Fiddamanoutput adds character(s) to the front of each line that may adversely affect
168d2b76ef7SAndy Fiddamanthe indentation of the original source lines and make the output lines
169d2b76ef7SAndy Fiddamandifficult to interpret.
170d2b76ef7SAndy FiddamanThis option will preserve the original source's indentation.
171d2b76ef7SAndy Fiddaman.It Fl w
172d2b76ef7SAndy FiddamanIgnores all blanks
173d2b76ef7SAndy Fiddaman.Pq SPACE and TAB characters
174d2b76ef7SAndy Fiddamanand treats all other strings of blanks as equivalent.
175d2b76ef7SAndy FiddamanFor example,
176d2b76ef7SAndy Fiddaman.Ql if ( a == b )
177d2b76ef7SAndy Fiddamanwill compare equal to
178d2b76ef7SAndy Fiddaman.Ql if (a==b) .
179d2b76ef7SAndy Fiddaman.El
180d2b76ef7SAndy Fiddaman.Pp
181c10c16deSRichard LoweThe following options are mutually exclusive:
182d2b76ef7SAndy Fiddaman.Bl -tag -width Ds
183d2b76ef7SAndy Fiddaman.It Fl c
184d2b76ef7SAndy FiddamanProduces a listing of differences with three lines of context.
185d2b76ef7SAndy FiddamanWith this option, output format is modified slightly.
186d2b76ef7SAndy FiddamanThat is, output begins with identification of the files involved and their
187d2b76ef7SAndy Fiddamancreation dates, then each change is separated by a line with a dozen
188d2b76ef7SAndy Fiddamanasterisks
189d2b76ef7SAndy Fiddaman.Pq \&* .
190d2b76ef7SAndy FiddamanThe lines removed from
191d2b76ef7SAndy Fiddaman.Ar file1
192d2b76ef7SAndy Fiddamanare marked with
193d2b76ef7SAndy Fiddaman.Sq -- .
194d2b76ef7SAndy FiddamanThe lines added to
195d2b76ef7SAndy Fiddaman.Ar file2
196d2b76ef7SAndy Fiddamanare marked
197d2b76ef7SAndy Fiddaman.Sq \&+ .
198d2b76ef7SAndy FiddamanLines that are changed from one file to the other are marked in both files with
199d2b76ef7SAndy Fiddaman.Sq \&! .
200d2b76ef7SAndy Fiddaman.It Fl C Ar number
201d2b76ef7SAndy FiddamanProduces a listing of differences identical to that produced by
202d2b76ef7SAndy Fiddaman.Fl c
203d2b76ef7SAndy Fiddamanwith
204d2b76ef7SAndy Fiddaman.Ar number
205d2b76ef7SAndy Fiddamanlines of context.
206d2b76ef7SAndy Fiddaman.It Fl D Ar string
207d2b76ef7SAndy FiddamanCreates a merged version of
208d2b76ef7SAndy Fiddaman.Ar file1
209d2b76ef7SAndy Fiddamanand
210d2b76ef7SAndy Fiddaman.Ar file2
211d2b76ef7SAndy Fiddamanwith C preprocessor controls included so that a compilation of the result
212d2b76ef7SAndy Fiddamanwithout defining
213d2b76ef7SAndy Fiddaman.Ar string
214d2b76ef7SAndy Fiddamanis equivalent to compiling
215d2b76ef7SAndy Fiddaman.Ar file1 ,
216d2b76ef7SAndy Fiddamanwhile defining
217d2b76ef7SAndy Fiddaman.Ar string
218d2b76ef7SAndy Fiddamanwill yield
219d2b76ef7SAndy Fiddaman.Ar file2 .
220d2b76ef7SAndy Fiddaman.It Fl e
221d2b76ef7SAndy FiddamanProduces a script of only
222d2b76ef7SAndy Fiddaman.Sy a ,
223d2b76ef7SAndy Fiddaman.Sy c ,
224d2b76ef7SAndy Fiddamanand
225d2b76ef7SAndy Fiddaman.Sy d
226d2b76ef7SAndy Fiddamancommands for the editor
227d2b76ef7SAndy Fiddaman.Xr ed 1 ,
228d2b76ef7SAndy Fiddamanwhich will recreate
229d2b76ef7SAndy Fiddaman.Ar file2
230d2b76ef7SAndy Fiddamanfrom
231d2b76ef7SAndy Fiddaman.Ar file1 .
232d2b76ef7SAndy FiddamanIn connection with the
233d2b76ef7SAndy Fiddaman.Fl e
234d2b76ef7SAndy Fiddamanoption, the following shell program may help maintain multiple versions of a
235c10c16deSRichard Lowefile.
236d2b76ef7SAndy FiddamanOnly an ancestral file
237d2b76ef7SAndy Fiddaman.Pq $1
238d2b76ef7SAndy Fiddamanand a chain of version-to-version
239d2b76ef7SAndy Fiddaman.Sy ed
240d2b76ef7SAndy Fiddamanscripts
241d2b76ef7SAndy Fiddaman.Pq $2,$3,...
242d2b76ef7SAndy Fiddamanmade by
243d2b76ef7SAndy Fiddaman.Nm
244d2b76ef7SAndy Fiddamanneed be on hand.
245d2b76ef7SAndy FiddamanA
246d2b76ef7SAndy Fiddaman.Dq latest version
247d2b76ef7SAndy Fiddamanappears on the standard output.
248d2b76ef7SAndy Fiddaman.Pp
249d2b76ef7SAndy Fiddaman.Dl (shift; cat $*; echo a'1,$p') | ed - $1
250d2b76ef7SAndy Fiddaman.It Fl f
251d2b76ef7SAndy FiddamanProduces a similar script, not useful with
252d2b76ef7SAndy Fiddaman.Xr ed 1 ,
253d2b76ef7SAndy Fiddamanin the opposite order.
254d2b76ef7SAndy Fiddaman.It Fl h
255d2b76ef7SAndy FiddamanDoes a fast, half-hearted job.
256d2b76ef7SAndy FiddamanIt works only when changed stretches are short and well separated, but does
257d2b76ef7SAndy Fiddamanwork on files of unlimited length.
258d2b76ef7SAndy FiddamanOptions
259d2b76ef7SAndy Fiddaman.Fl c ,
260d2b76ef7SAndy Fiddaman.Fl C ,
261d2b76ef7SAndy Fiddaman.Fl D ,
262d2b76ef7SAndy Fiddaman.Fl e ,
263d2b76ef7SAndy Fiddaman.Fl f ,
264d2b76ef7SAndy Fiddamanand
265d2b76ef7SAndy Fiddaman.Fl n
266d2b76ef7SAndy Fiddamanare unavailable with
267d2b76ef7SAndy Fiddaman.Fl h .
268d2b76ef7SAndy Fiddaman.Nm
269d2b76ef7SAndy Fiddamandoes not descend into directories with this option.
270d2b76ef7SAndy Fiddaman.It Fl n
271d2b76ef7SAndy FiddamanProduces a script similar to
272d2b76ef7SAndy Fiddaman.Fl e ,
273d2b76ef7SAndy Fiddamanbut in the opposite order and with a count of changed lines on each insert or
274d2b76ef7SAndy Fiddamandelete command.
275d2b76ef7SAndy Fiddaman.It Fl u
276d2b76ef7SAndy FiddamanProduces a listing of differences with three lines of context.
277d2b76ef7SAndy FiddamanThe output is similar to that of the
278d2b76ef7SAndy Fiddaman.Fl c
279d2b76ef7SAndy Fiddamanoption, except that the context is
280d2b76ef7SAndy Fiddaman.Dq unified .
281d2b76ef7SAndy FiddamanRemoved and changed lines in
282d2b76ef7SAndy Fiddaman.Ar file1
283d2b76ef7SAndy Fiddamanare marked by a
284d2b76ef7SAndy Fiddaman.Sq \&-
285d2b76ef7SAndy Fiddamanwhile lines added or changed in
286d2b76ef7SAndy Fiddaman.Ar file2
287d2b76ef7SAndy Fiddamanare marked by a
288d2b76ef7SAndy Fiddaman.Sq \&+ .
289d2b76ef7SAndy FiddamanBoth versions of changed lines appear in the output, while added, removed, and
290d2b76ef7SAndy Fiddamancontext lines appear only once.
291d2b76ef7SAndy FiddamanThe identification of
292d2b76ef7SAndy Fiddaman.Ar file1
293d2b76ef7SAndy Fiddamanand
294d2b76ef7SAndy Fiddaman.Ar file2
295d2b76ef7SAndy Fiddamanis different, with
296d2b76ef7SAndy Fiddaman.Dq ---
297d2b76ef7SAndy Fiddamanand
298d2b76ef7SAndy Fiddaman.Dq +++
299d2b76ef7SAndy Fiddamanbeing printed where
300d2b76ef7SAndy Fiddaman.Dq ***
301d2b76ef7SAndy Fiddamanand
302d2b76ef7SAndy Fiddaman.Dq ---
303d2b76ef7SAndy Fiddamanwould appear with the
304d2b76ef7SAndy Fiddaman.Fl c
305d2b76ef7SAndy Fiddamanoption.
306d2b76ef7SAndy FiddamanEach change is separated by a line of the form
307d2b76ef7SAndy Fiddaman.Pp
308d2b76ef7SAndy Fiddaman.D1 Cm @@ Cm \&- Ns Ar n1 , Ns Ar n2 Cm + Ns Ar n3 , Ns Ar n4 Cm @@
309d2b76ef7SAndy Fiddaman.It Fl U Ar number
310d2b76ef7SAndy FiddamanProduces a listing of differences identical to that produced by
311d2b76ef7SAndy Fiddaman.Fl u
312d2b76ef7SAndy Fiddamanwith
313d2b76ef7SAndy Fiddaman.Ar number
314d2b76ef7SAndy Fiddamanlines of context.
315d2b76ef7SAndy Fiddaman.El
316d2b76ef7SAndy Fiddaman.Pp
317d2b76ef7SAndy FiddamanThe following options are used for comparing directories:
318d2b76ef7SAndy Fiddaman.Bl -tag -width Ds
319d2b76ef7SAndy Fiddaman.It Fl l
320d2b76ef7SAndy FiddamanProduces output in long format.
321d2b76ef7SAndy FiddamanBefore the
322d2b76ef7SAndy Fiddaman.Nm ,
323d2b76ef7SAndy Fiddamaneach text file is piped through
324d2b76ef7SAndy Fiddaman.Xr pr 1
325d2b76ef7SAndy Fiddamanto paginate it.
326d2b76ef7SAndy FiddamanOther differences are remembered and summarized after all text file differences
327d2b76ef7SAndy Fiddamanare reported.
328d2b76ef7SAndy Fiddaman.It Fl r
329d2b76ef7SAndy FiddamanApplies
330d2b76ef7SAndy Fiddaman.Nm
331d2b76ef7SAndy Fiddamanrecursively to common subdirectories encountered.
332d2b76ef7SAndy Fiddaman.It Fl s
333d2b76ef7SAndy FiddamanReports files that are identical.
334d2b76ef7SAndy FiddamanThese identical files would not otherwise be mentioned.
335d2b76ef7SAndy Fiddaman.It Fl S Ar name
336d2b76ef7SAndy FiddamanStarts a directory
337d2b76ef7SAndy Fiddaman.Nm
338d2b76ef7SAndy Fiddamanin the middle, beginning with the file
339d2b76ef7SAndy Fiddaman.Ar name .
340d2b76ef7SAndy Fiddaman.El
341d2b76ef7SAndy Fiddaman.Sh OPERANDS
342d2b76ef7SAndy FiddamanThe following operands are supported:
343d2b76ef7SAndy Fiddaman.Pp
344d2b76ef7SAndy Fiddaman.Bl -tag -offset Ds -width directory1 -compact
345d2b76ef7SAndy Fiddaman.It Ar file1
346d2b76ef7SAndy Fiddaman.It Ar file2
347d2b76ef7SAndy FiddamanA path name of a file or directory to be compared.
348d2b76ef7SAndy FiddamanIf either
349d2b76ef7SAndy Fiddaman.Ar file1
350d2b76ef7SAndy Fiddamanor
351d2b76ef7SAndy Fiddaman.Ar file2
352d2b76ef7SAndy Fiddamanis
353d2b76ef7SAndy Fiddaman.Sq \&- ,
354d2b76ef7SAndy Fiddamanthe standard input will be used in its place.
355d2b76ef7SAndy Fiddaman.Pp
356d2b76ef7SAndy Fiddaman.It Ar directory1
357d2b76ef7SAndy Fiddaman.It Ar directory2
358d2b76ef7SAndy FiddamanA path name of a directory to be compared.
359d2b76ef7SAndy Fiddaman.El
360d2b76ef7SAndy Fiddaman.Pp
361d2b76ef7SAndy FiddamanIf only one of
362d2b76ef7SAndy Fiddaman.Ar file1
363d2b76ef7SAndy Fiddamanand
364d2b76ef7SAndy Fiddaman.Ar file2
365d2b76ef7SAndy Fiddamanis a directory,
366d2b76ef7SAndy Fiddaman.Nm
367d2b76ef7SAndy Fiddamanwill be applied to the non-directory file and the file contained in the
368d2b76ef7SAndy Fiddamandirectory file with a filename that is the same as the last component of the
369d2b76ef7SAndy Fiddamannon-directory file.
370d2b76ef7SAndy Fiddaman.Sh USAGE
371d2b76ef7SAndy FiddamanSee
372*bbf21555SRichard Lowe.Xr largefile 7
373d2b76ef7SAndy Fiddamanfor the description of the behavior of
374d2b76ef7SAndy Fiddaman.Nm
375d2b76ef7SAndy Fiddamanwhen encountering files greater than or equal to 2 Gbyte
376d2b76ef7SAndy Fiddaman.Pq  2^31 bytes .
377d2b76ef7SAndy Fiddaman.Sh FILES
378d2b76ef7SAndy Fiddaman.Bl -tag -width Ds
379d2b76ef7SAndy Fiddaman.It Pa /tmp/d?????
380c10c16deSRichard Lowetemporary file used for comparison
381d2b76ef7SAndy Fiddaman.It Pa /usr/lib/diffh
382d2b76ef7SAndy Fiddamanexecutable file for
383d2b76ef7SAndy Fiddaman.Fl h
384d2b76ef7SAndy Fiddamanoption
385d2b76ef7SAndy Fiddaman.El
386d2b76ef7SAndy Fiddaman.Sh EXIT STATUS
387d2b76ef7SAndy FiddamanThe following exit values are returned:
388d2b76ef7SAndy Fiddaman.Bl -tag -width Ds
389d2b76ef7SAndy Fiddaman.It 0
390d2b76ef7SAndy FiddamanNo differences were found.
391d2b76ef7SAndy Fiddaman.It 1
392d2b76ef7SAndy FiddamanDifferences were found.
393d2b76ef7SAndy Fiddaman.It >1
394d2b76ef7SAndy FiddamanAn error occurred.
395d2b76ef7SAndy Fiddaman.El
396d2b76ef7SAndy Fiddaman.Sh EXAMPLES
397d2b76ef7SAndy Fiddaman.Sy Example 1 No Typical output of the diff command
398d2b76ef7SAndy Fiddaman.Pp
399d2b76ef7SAndy FiddamanIn the following command,
400d2b76ef7SAndy Fiddaman.Ar dir1
401d2b76ef7SAndy Fiddamanis a directory containing a directory named
402d2b76ef7SAndy Fiddaman.Pa x ,
403d2b76ef7SAndy Fiddaman.Ar dir2
404d2b76ef7SAndy Fiddamanis a directory containing a directory named
405d2b76ef7SAndy Fiddaman.Pa x ,
406d2b76ef7SAndy Fiddaman.Pa dir1/x
407d2b76ef7SAndy Fiddamanand
408d2b76ef7SAndy Fiddaman.Pa dir2/x
409d2b76ef7SAndy Fiddamanboth contain files named
410d2b76ef7SAndy Fiddaman.Pa date.out ,
411d2b76ef7SAndy Fiddamanand
412d2b76ef7SAndy Fiddaman.Pa dir2/x
413d2b76ef7SAndy Fiddamancontains a file named
414d2b76ef7SAndy Fiddaman.Pa y :
415d2b76ef7SAndy Fiddaman.Bd -literal -offset 4n
416d2b76ef7SAndy Fiddamanexample% diff -r dir1 dir2
417d2b76ef7SAndy FiddamanCommon subdirectories: dir1/x and dir2/x
418d2b76ef7SAndy FiddamanOnly in dir2/x: y
419d2b76ef7SAndy Fiddamandiff -r dir1/x/date.out dir2/x/date.out
420d2b76ef7SAndy Fiddaman1c1
421d2b76ef7SAndy Fiddaman< Mon Jul  2 13:12:16 PDT 1990
422d2b76ef7SAndy Fiddaman---
423d2b76ef7SAndy Fiddaman> Tue Jun 19 21:41:39 PDT 1990
424d2b76ef7SAndy Fiddaman.Ed
425d2b76ef7SAndy Fiddaman.Sh ENVIRONMENT VARIABLES
426d2b76ef7SAndy FiddamanSee
427*bbf21555SRichard Lowe.Xr environ 7
428d2b76ef7SAndy Fiddamanfor descriptions of the following environment variables that affect the
429d2b76ef7SAndy Fiddamanexecution of
430d2b76ef7SAndy Fiddaman.Nm :
431d2b76ef7SAndy Fiddaman.Ev LANG ,
432d2b76ef7SAndy Fiddaman.Ev LC_ALL ,
433d2b76ef7SAndy Fiddaman.Ev LC_CTYPE ,
434d2b76ef7SAndy Fiddaman.Ev LC_MESSAGES ,
435d2b76ef7SAndy Fiddaman.Ev LC_TIME ,
436d2b76ef7SAndy Fiddamanand
437d2b76ef7SAndy Fiddaman.Ev NLSPATH .
438d2b76ef7SAndy Fiddaman.Bl -tag -width Ds
439d2b76ef7SAndy Fiddaman.It Ev TZ
440d2b76ef7SAndy FiddamanDetermines the locale for affecting the timezone used for calculating file
441d2b76ef7SAndy Fiddamantimestamps written with the
442d2b76ef7SAndy Fiddaman.Fl C
443d2b76ef7SAndy Fiddamanand
444d2b76ef7SAndy Fiddaman.Fl c
445d2b76ef7SAndy Fiddamanoptions.
446d2b76ef7SAndy Fiddaman.El
447d2b76ef7SAndy Fiddaman.Sh INTERFACE STABILITY
448d2b76ef7SAndy FiddamanThe command line interface of
449d2b76ef7SAndy Fiddaman.Nm
450d2b76ef7SAndy Fiddamanis
451d2b76ef7SAndy Fiddaman.Sy Committed .
452d2b76ef7SAndy FiddamanThe output of
453d2b76ef7SAndy Fiddaman.Nm
454d2b76ef7SAndy Fiddamanis
455d2b76ef7SAndy Fiddaman.Sy Committed .
456d2b76ef7SAndy Fiddaman.Sh SEE ALSO
457d2b76ef7SAndy Fiddaman.Xr bdiff 1 ,
458d2b76ef7SAndy Fiddaman.Xr cmp 1 ,
459d2b76ef7SAndy Fiddaman.Xr comm 1 ,
460d2b76ef7SAndy Fiddaman.Xr dircmp 1 ,
461d2b76ef7SAndy Fiddaman.Xr ed 1 ,
462d2b76ef7SAndy Fiddaman.Xr pr 1 ,
463d2b76ef7SAndy Fiddaman.Xr sdiff 1 ,
464*bbf21555SRichard Lowe.Xr attributes 7 ,
465*bbf21555SRichard Lowe.Xr environ 7 ,
466*bbf21555SRichard Lowe.Xr largefile 7 ,
467*bbf21555SRichard Lowe.Xr standards 7
468d2b76ef7SAndy Fiddaman.Sh NOTES
469d2b76ef7SAndy FiddamanEditing scripts produced under the
470d2b76ef7SAndy Fiddaman.Fl e
471d2b76ef7SAndy Fiddamanor
472d2b76ef7SAndy Fiddaman.Fl f
473d2b76ef7SAndy Fiddamanoptions are na\(:ive about creating lines consisting of a single dot
474d2b76ef7SAndy Fiddaman.Sq \&. .
475d2b76ef7SAndy Fiddaman.Pp
476c10c16deSRichard LoweMissing NEWLINE at end of file indicates that the last line of the file in
477d2b76ef7SAndy Fiddamanquestion did not have a NEWLINE.
478d2b76ef7SAndy FiddamanIf the lines are different, they will be flagged and output, although the
479d2b76ef7SAndy Fiddamanoutput will seem to indicate they are the same.
480