Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
diff(1)			    General Commands Manual		       diff(1)

       diff - differential file	and directory comparator

       n] name]	dir1 dir2
       n] name]	file1 file2
       string] file1 file2

   Comparing Directories
       If  both	 arguments are directories, sorts the contents of the directo-
       ries by name, then runs the regular file	algorithm (described below) on
       text files that have the	same name in each directory but	are different.
       Binary files that differ, common	subdirectories,	and files that	appear
       in only one directory are listed.  When comparing directories, the fol-
       lowing options are recognized:

	      Long output format; each text file
			  is piped through to paginate it (see pr(1)).	 Other
			  differences  are remembered and summarized after all
			  text file differences	are reported.

	      Applies	  recursively to common	subdirectories encountered.

	      reports files that are identical but otherwise not mentioned.

	      Starts a directory
			  in the middle	of  the	 sorted	 directory,  beginning
			  with file name.

   Comparing Files
       When  run  on  regular files, and when comparing	text files that	differ
       during directory	comparison, tells what lines must be  changed  in  the
       files  to  bring	 them into agreement.  usually finds a smallest	suffi-
       cient set of file differences.  However,	it can be misled by lines con-
       taining	very  few characters or	by other situations.  If neither file1
       nor file2 is a directory, either	can be specified as in which case  the
       standard	input is used.	If file1 is a directory, a file	in that	direc-
       tory whose filename is the same as the filename of file2	is  used  (and
       vice versa).

       There are several options for output format.  The default output	format
       contains	lines resembling the following:


       These lines resemble commands to	convert	file1 into file2.  The numbers
       after  the  letters  pertain  to	file2.	In fact, by exchanging for and
       reading backwards one may ascertain equally how to convert  file2  into
       file1.  As in 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

       Except for or which can be given	with any of the	others,	the  following
       options are mutually exclusive:

	      Produce a	script of
		       and  commands  for  the	editor suitable	for recreating
		       file2 from file1.  Extra	commands are added to the out-
		       put  when comparing directories with so that the	result
		       is a shell script for converting	text files  common  to
		       the  two	 directories from their	state in dir1 to their
		       state in	dir2 (see sh-bourne(1)

	      Produce a	script similar to that of the
		       option that is not useful with but is more readable  by

	      Produce a	script similar to that of
		       but  in the opposite order, and with a count of changed
		       lines on	each insert or delete command.	 This  is  the
		       form used by (see rcsdiff(1)).

	      Produce a	difference list	with 3 lines of	context.
		       modifies	 the output format slightly: the output	begins
		       with identification of the files	involved, followed  by
		       their  creation	dates, then each change	separated by a
		       line containing about twelve  asterisks	Lines  removed
		       from file1 are marked with and lines added to file2 are
		       marked Lines that change	from one file to the other are
		       marked  in both files with with Changes that lie	within
		       3 lines of each other in	the file are grouped  together
		       on output.

	      Output format similar to
		       but with	n lines	of context.

	      Do a fast, half-hearted job.
		       This option works only when changed stretches are short
		       and well	separated, but can be used on files of	unlim-
		       ited length.

	      Create a merged version of
		       file1  and  file2  on  the standard output, with	C pre-
		       processor controls included so that  a  compilation  of
		       the  result  without  defining  string is equivalent to
		       compiling file1,	while compiling	the result with	string
		       defined is equivalent to	compiling file2.

	      Ignore trailing blanks (spaces and tabs)
		       and treat other strings of blanks as equal.

	      Ignore all whitespace (blanks and	tabs).
		       For example, and	are treated as equal.

	      Ignores uppercase/lowercase differences.
		       Thus is treated the same	as

	      Expand tabs in output lines.
		       Normal  or  output  adds	 one or	more characters	to the
		       front of	each line.  Resulting misalignment of indenta-
		       tion  in	 the original source lines can make the	output
		       listing difficult to interpret.	This option  preserves
		       original	source file indentation.

   Environment Variables
       determines  the	locale	to use for the locale categories when both and
       the corresponding environment variable (beginning with do not specify a
       locale.	 If is not set or is set to the	empty string, a	default	of "C"
       (see lang(5)) is	used.

       determines the space characters for the command,	and the	interpretation
       of text within file as single- and/or multi-byte	characters.

       determines the language in which	messages are displayed.

       If  any	internationalization variable contains an invalid setting, and
       behave as if all	internationalization variables are set	to  "C".   See

   International Code Set Support
       Single-	and  multi-byte	character code sets are	supported with the ex-
       ception that and	do not recognize multi-byte alternative	space  charac-

       Upon completion,	returns	with one of the	following exit values:

	       0      No differences were found.

	       1      Differences were found.

	      >1      An error occurred.

       The following command creates a script file

       is added	to the end of the script in order to save the file:

       The script file can then	be used	to create the file from	the file using
       the editor in the following manner:

       The following command produces the difference output with  2  lines  of
       context information before and after the	line that was different:

       The  following  command	ignores	all blanks and tabs and	ignores	upper-
       case-lowercase differences.

       Editing scripts produced	by the or  option  are	naive  about  creating
       lines consisting	of a single dot

       When  comparing	directories  with the or options specified, first com-
       pares the files in the same manner as then runs the algorithm  if  they
       are not equal.  This may	cause a	small amount of	spurious output	if the
       files are identical except for insignificant blank  strings  or	upper-
       case/lowercase differences.

       The  default  algorithm requires	memory allocation of roughly six times
       the size	of the file.  If sufficient memory is not available  for  han-
       dling large files, the option or	can be used (see bdiff(1)).

       When  run  on  directories  with	 the option, recursively descends sub-
       trees.  When comparing deep multi-level directories, more memory	may be
       required	than is	currently available on the system.  The	amount of mem-
       ory required depends on the depth of recursion  and  the	 size  of  the

       was developed by	AT&T, the University of	California, Berkeley, and HP.

       used by			     option

       bdiff(1),  cmp(1),  comm(1),  diff3(1),	diffmk(1),  dircmp(1),	ed(1),
       more(1),	nroff(1), rcsdiff(1), sccsdiff(1), sdiff(1), terminfo(4).



Want to link to this manual page? Use this URL:

home | help