Unix/Linux Go Back    

OpenSolaris 2009.06 - man page for diff (opensolaris section 1)

Linux & Unix Commands - Search Man Pages
Man Page or Keyword Search:   man
Select Man Page Set:       apropos Keyword Search (sections above)

diff(1) 				  User Commands 				  diff(1)

       diff - compare two files

       diff [-bitw] [-c | -e | -f | -h | -n | -u] file1 file2

       diff [-bitw] [-C number | -U number] file1 file2

       diff [-bitw] [-D string] file1 file2

       diff [-bitw] [-c | -e | -f | -h | -n | -u] [-l] [-r] [-s]
	    [-S name] directory1 directory2

       The diff utility will compare the contents of file1 and file2 and write to standard output
       a list of changes necessary to convert file1 into file2.  This  list  should  be  minimal.
       Except in rare circumstances, diff finds a smallest sufficient set of file differences. No
       output will be produced if the files are identical.

       The normal output contains lines of these forms:

	 n1 a n3,n4
	 n1,n2 d n3
	 n1,n2 c n3,n4

       where n1 and n2 represent lines file1 and n3 and n4 represent lines in file2  These  lines
       resemble ed(1) commands to convert file1 to file2. By exchanging a for d and reading back-
       ward, file2 can be converted to file1. As in ed, identical pairs, where	n1=n2  or  n3=n4,
       are abbreviated as a single number.

       Following  each	of  these  lines  come	all the lines that are affected in the first file
       flagged by `<', then all the lines that are affected in the second file flagged by `>'.

       The following options are supported:

       -b     Ignores trailing blanks (spaces and tabs) and treats other  strings  of  blanks  as

       -i     Ignores the case of letters. For example, `A' will compare equal to `a'.

       -t     Expands  TAB  characters	in output lines. Normal or -c output adds character(s) to
	      the front of each line that may adversely affect the indentation	of  the  original
	      source  lines  and  make	the output lines difficult to interpret. This option will
	      preserve the original source's indentation.

       -w     Ignores all blanks (SPACE and TAB characters)  and  treats  all  other  strings  of
	      blanks  as  equivalent.  For  example,  `if  (  a  ==  b	)'  will compare equal to

       The following options are mutually exclusive:

       -c	     Produces a listing of differences with three lines  of  context.  With  this
		     option,  output  format  is  modified  slightly. That is, output begins with
		     identification of the files involved and their  creation  dates,  then  each
		     change is separated by a line with a dozen *'s. The lines removed from file1
		     are marked with '--'. The lines added to file2 are marked	'+'.  Lines  that
		     are changed from one file to the other are marked in both files with '!'.

       -C number     Produces a listing of differences identical to that produced by -c with num-
		     ber lines of context.

       -D string     Creates a merged version of file1 and file2  with	C  preprocessor  controls
		     included  so  that  a  compilation  of the result without defining string is
		     equivalent to compiling file1, while defining string will yield file2.

       -e	     Produces a script of only a, c, and d commands for the editor ed, which will
		     recreate  file2  from file1. In connection with the -e option, the following
		     shell program may help maintain multiple versions of a file. Only an  ances-
		     tral file ($1) and a chain of version-to-version ed scripts ($2,$3,...) made
		     by diff need be on hand. A ``latest version'' appears on the  standard  out-

		       (shift; cat $*; echo a'1,$p') | ed - $1

       -f	    Produces a similar script, not useful with ed, in the opposite order.

       -h	    Does a fast, half-hearted job. It works only when changed stretches are short
		    and well separated, but does work on files of unlimited length.  Options  -c,
		    -C,  -D,  -e,  -f, and -n are unavailable with -h. diff does not descend into
		    directories with this option.

       -n	    Produces a script similar to -e, but in the opposite order and with  a  count
		    of changed lines on each insert or delete command.

       -u	    Produces  a listing of differences with three lines of context. The output is
		    similar to that of the -c option,  except  that  the  context  is  "unified".
		    Removed  and  changed lines in file1 are marked by a '-' while lines added or
		    changed in file2 are marked by a '+'. Both versions of changed  lines  appear
		    in	the output, while added, removed, and context lines appear only once. The
		    identification of file1 and file2 is different, with "---"	and  "+++"  being
		    printed where "***" and "---" would appear with the -c option. Each change is
		    separated by a line of the form

		      @@ -n1,n2 +n3,n4 @@

       -U number    Produces a listing of differences identical to that produced by -u with  num-
		    ber lines of context.

       The following options are used for comparing directories:

       -l	   Produces  output  in  long  format.	Before	the diff, each text file is piped
		   through pr(1) to paginate it. Other differences are remembered and  summarized
		   after all text file differences are reported.

       -r	   Applies diff recursively to common subdirectories encountered.

       -s	   Reports files that are identical. These identical files would not otherwise be

       -S name	   Starts a directory diff in the middle, beginning with the file name.

       The following operands are supported:

       file1	      A path name of a file or directory to be compared. If either file1 or file2
       file2	      is -, the standard input will be used in its place.

       directory1     A path name of a directory to be compared.

       If  only  one of file1 and file2 is a directory, diff will be applied to the non-directory
       file and the file contained in the directory file with a filename that is the same as  the
       last component of the non-directory file.

       See  largefile(5)  for  the  description  of  the behavior of diff when encountering files
       greater than or equal to 2 Gbyte ( 2^31 bytes).

       Example 1 Typical output of the diff command

       In the following command, dir1 is a directory containing a directory named x,  dir2  is	a
       directory  containing  a  directory  named  x,  dir1/x and dir2/x both contain files named
       date.out, and dir2/x contains a file named y:

	 example% diff -r dir1 dir2
	 Common subdirectories: dir1/x and dir2/x

	 Only in dir2/x: y

	 diff -r dir1/x/date.out dir2/x/date.out


	 < Mon Jul  2 13:12:16 PDT 1990


	 > Tue Jun 19 21:41:39 PDT 1990

       See environ(5) for descriptions of the following environment  variables	that  affect  the
       execution of diff: LANG, LC_ALL, LC_CTYPE, LC_MESSAGES, LC_TIME, and NLSPATH.

       TZ     Determines  the  locale  for affecting the timezone used for calculating file time-
	      stamps written with the -C and -c options.

       The following exit values are returned:

       0      No differences were found.

       1      Differences were found.

       >1     An error occurred.

       /tmp/d?????	  temporary file used for comparison

       /usr/lib/diffh	  executable file for -h option

       See attributes(5) for descriptions of the following attributes:

       |      ATTRIBUTE TYPE	     |	    ATTRIBUTE VALUE	   |
       |Availability		     |SUNWesu			   |
       |CSI			     |Enabled			   |
       |Interface Stability	     |Standard			   |

       bdiff(1), cmp(1), comm(1), dircmp(1), ed(1), pr(1), sdiff(1),  attributes(5),  environ(5),
       largefile(5), standards(5)

       Editing	scripts  produced  under the -e or -f options are naive about creating lines con-
       sisting of a single period (.).

       Missing NEWLINE at end of file indicates that the last line of the file	in  question  did
       not  have a NEWLINE. If the lines are different, they will be flagged and output, although
       the output will seem to indicate they are the same.

SunOS 5.11				   22 Sep 2004					  diff(1)
Unix & Linux Commands & Man Pages : ©2000 - 2018 Unix and Linux Forums

All times are GMT -4. The time now is 07:40 PM.