|   | 
		DIFF(1) 			   GNU Tools			       DIFF(1)
NAME
       diff - find differences between two files
SYNOPSIS
       diff [options] from-file to-file
DESCRIPTION
       In the simplest case, diff compares the contents of the two files from-
       file and to-file.  A file name of - stands for text read from the stan-
       dard  input.   As  a special case, diff - - compares a copy of standard
       input to itself.
       If from-file is a directory and to-file is not, diff compares the  file
       in  from-file  whose file name is that of to-file, and vice versa.  The
       non-directory file must not be -.
       If both from-file and to-file are  directories,	diff  compares	corre-
       sponding files in both directories, in alphabetical order; this compar-
       ison is not recursive unless the -r or  --recursive  option  is	given.
       diff  never compares the actual contents of a directory as if it were a
       file.  The file that is fully specified	may  not  be  standard	input,
       because	standard  input  is nameless and the notion of ``file with the
       same name'' does not apply.
       diff options begin with -, so normally from-file and  to-file  may  not
       begin  with -.  However, -- as an argument by itself treats the remain-
       ing arguments as file names even if they begin with -.
   Options
       Below is a summary of all of the options that GNU diff  accepts.   Most
       options have two equivalent names, one of which is a single letter pre-
       ceded by -, and the other of which is a long name preceded by --.  Mul-
       tiple  single letter options (unless they take an argument) can be com-
       bined into a single command line word: -ac  is  equivalent  to  -a  -c.
       Long  named  options  can  be abbreviated to any unique prefix of their
       name.  Brackets ([ and ]) indicate that an  option  takes  an  optional
       argument.
       -lines Show  lines (an integer) lines of context.  This option does not
	      specify an output format by itself; it has no effect  unless  it
	      is combined with -c or -u.  This option is obsolete.  For proper
	      operation, patch typically needs at least two lines of  context.
       -a     Treat  all  files as text and compare them line-by-line, even if
	      they do not seem to be text.
       -b     Ignore changes in amount of white space.
       -B     Ignore changes that just insert or delete blank lines.
       --brief
	      Report only whether the files differ, not  the  details  of  the
	      differences.
       -c     Use the context output format.
       -C lines
       --context[=lines]
	      Use  the context output format, showing lines (an integer) lines
	      of context, or three if lines is not given.  For	proper	opera-
	      tion, patch typically needs at least two lines of context.
       --changed-group-format=format
	      Use  format  to  output  a line group containing differing lines
	      from both files in if-then-else format.	For  more  details  on
	      what  can  be  specified	in the format string, consult the info
	      documentation of diff .
       -d     Change the algorithm to perhaps find a smaller set  of  changes.
	      This makes diff slower (sometimes much slower).
       -D name
	      Make  merged if-then-else format output, conditional on the pre-
	      processor macro name.
       -e
       --ed   Make output that is a valid ed script.
       --exclude=pattern
	      When comparing  directories,  ignore  files  and	subdirectories
	      whose basenames match pattern.
       --exclude-from=file
	      When  comparing  directories,  ignore  files  and subdirectories
	      whose basenames match any pattern contained in file.
       --expand-tabs
	      Expand tabs to spaces in the output, to preserve	the  alignment
	      of tabs in the input files.
       -f     Make output that looks vaguely like an ed script but has changes
	      in the order they appear in the file.
       -F regexp
	      In context and unified format, for  each	hunk  of  differences,
	      show some of the last preceding line that matches regexp.
       --forward-ed
	      Make output that looks vaguely like an ed script but has changes
	      in the order they appear in the file.
       -h     This option currently has no effect; it is present for Unix com-
	      patibility.
       -H     Use heuristics to speed handling of large files that have numer-
	      ous scattered small changes.
       --horizon-lines=lines
	      Do not discard the last lines lines of the common prefix and the
	      first lines lines of the common suffix.
       -i     Ignore  changes  in case; consider upper- and lower-case letters
	      equivalent.
       -I regexp
	      Ignore changes that just insert or delete lines that match  reg-
	      exp.
       --ifdef=name
	      Make  merged if-then-else format output, conditional on the pre-
	      processor macro name.
       --ignore-all-space
	      Ignore white space when comparing lines.
       --ignore-blank-lines
	      Ignore changes that just insert or delete blank lines.
       --ignore-case
	      Ignore changes in case; consider upper- and lower-case to be the
	      same.
       --ignore-matching-lines=regexp
	      Ignore  changes that just insert or delete lines that match reg-
	      exp.
       --ignore-space-change
	      Ignore changes in amount of white space.
       --initial-tab
	      Output a tab rather than a space before the text of  a  line  in
	      normal  or context format.  This causes the alignment of tabs in
	      the line to look normal.
       -l     Pass the output through pr to paginate it.
       -L label
       --label=label
	      Use label instead of the file name in  the  context  format  and
	      unified format headers.
       --left-column
	      Print  only  the left column of two common lines in side by side
	      format.
       --line-format=format
	      Use format to output all input lines in in-then-else format.
       --minimal
	      Change the algorithm to perhaps find a smaller set  of  changes.
	      This makes diff slower (sometimes much slower).
       -n     Output RCS-format diffs; like -f except that each command speci-
	      fies the number of lines affected.
       -N
       --new-file
	      In directory comparison, if a file is found in only  one	direc-
	      tory, treat it as present but empty in the other directory.
       --new-group-format=format
	      Use format to output a group of lines taken from just the second
	      file in if-then-else format.
       --new-line-format=format
	      Use format to output a line taken from just the second  file  in
	      if-then-else format.
       -o     Use the old traditional output format.
       --old-group-format=format
	      Use  format to output a group of lines taken from just the first
	      file in if-then-else format.
       --old-line-format=format
	      Use format to output a line taken from just the  first  file  in
	      if-then-else format.
       -p     Show which C function each change is in.
       -P     When comparing directories, if a file appears only in the second
	      directory of the two, treat it  as  present  but	empty  in  the
	      other.
       --paginate
	      Pass the output through pr to paginate it.
       -q     Report  only  whether  the  files differ, not the details of the
	      differences.
       --rcs  Output RCS-format diffs; like -f except that each command speci-
	      fies the number of lines affected.
       -r
       --recursive
	      When  comparing directories, recursively compare any subdirecto-
	      ries found.
       -s
       --report-identical-files
	      Report when two files are the same.
       -S file
	      When comparing directories, start with the file file.   This  is
	      used for resuming an aborted comparison.
       --sdiff-merge-assist
	      Print  extra  information to help sdiff.	sdiff uses this option
	      when it runs diff.  This option is not intended for users to use
	      directly.
       --show-c-function
	      Show which C function each change is in.
       --show-function-line=regexp
	      In  context  and	unified  format, for each hunk of differences,
	      show some of the last preceding line that matches regexp.
       --side-by-side
	      Use the side by side output format.
       --speed-large-files
	      Use heuristics to speed handling of large files that have numer-
	      ous scattered small changes.
       --starting-file=file
	      When  comparing  directories, start with the file file.  This is
	      used for resuming an aborted comparison.
       --suppress-common-lines
	      Do not print common lines in side by side format.
       -t     Expand tabs to spaces in the output, to preserve	the  alignment
	      of tabs in the input files.
       -T     Output  a  tab  rather than a space before the text of a line in
	      normal or context format.  This causes the alignment of tabs  in
	      the line to look normal.
       --text Treat  all  files as text and compare them line-by-line, even if
	      they do not appear to be text.
       -u     Use the unified output format.
       --unchanged-group-format=format
	      Use format to output a group of common  lines  taken  from  both
	      files in if-then-else format.
       --unchanged-line-format=format
	      Use format to output a line common to both files in if-then-else
	      format.
       --unidirectional-new-file
	      When comparing directories, if a file appears only in the second
	      directory  of  the  two,	treat  it  as present but empty in the
	      other.
       -U lines
       --unified[=lines]
	      Use the unified output format, showing lines (an integer)  lines
	      of  context,  or three if lines is not given.  For proper opera-
	      tion, patch typically needs at least two lines of context.
       -v
       --version
	      Output the version number of diff.
       -w     Ignore horizontal white space when comparing lines.
       -W columns
       --width=columns
	      Use an output width of columns in side by side format.
       -x pattern
	      When comparing  directories,  ignore  files  and	subdirectories
	      whose basenames match pattern.
       -X file
	      When  comparing  directories,  ignore  files  and subdirectories
	      whose basenames match any pattern contained in file.
       -y     Use the side by side output format.
RETURN VALUE
       diff returns 0 if the files are identical or 1 if the files differ.  If
       one or both of the files cannot be opened, then the return value is set
       to 2.
ENVIRONMENT
       The environment variable DIFF_OPTIONS can hold a set of default options
       for  diff.   These options are interpreted first and can be overwritten
       by explicit command line parameters.
EXAMPLES
       To save to a file some changes that you have made to your local	source
       tree  (possibly	including  new files), which you would like to show to
       others (perhaps using the send-pr(1) program), you could type
       diff -urN foo.orig foo >foo.diff
       where foo.orig and foo might be directory hierarchies or single	files.
SEE ALSO
       cmp(1), comm(1), diff3(1), ed(1), patch(1), pr(1), sdiff(1).
DIAGNOSTICS
       An  exit status of 0 means no differences were found, 1 means some dif-
       ferences were found, and 2 means trouble.
GNU Tools			   22sep1993			       DIFF(1)
 |