Man Linux: Main Page and Category List

NAME

       diff - differential file comparator

SYNOPSIS

       diff [ -acefmnbwr ] file1 ... file2

DESCRIPTION

       Diff  tells  what lines must be changed in two files to bring them into
       agreement.  If one file is a directory, then a file in  that  directory
       with  basename  the  same  as  that of the other file is used.  If both
       files are directories, similarly named files in the two directories are
       compared by the method of diff for text files and cmp(1) otherwise.  If
       more than two file names are given, then each argument is  compared  to
       the  last  argument  as  above.   The  -r option causes diff to process
       similarly named subdirectories recursively.  When processing more  than
       one file, diff prefixes file differences with a single line listing the
       two differing files, in the form of a diff command line.  The  -m  flag
       causes this behavior even when processing single files.

       The normal output contains lines of these forms:

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

       These  lines  resemble  ed  commands  to convert file1 into file2.  The
       numbers after the letters pertain to file2.  In fact, by exchanging ‘a’
       for  ‘d’  and reading backward one may ascertain equally how to convert
       file2 into 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  -b  option  causes trailing blanks (spaces and tabs) to be ignored
       and other strings of blanks to compare equal.  The -w option causes all
       white-space  to  be  removed  from  input  lines  before  applying  the
       difference algorithm.

       The -n option prefixes each range with file: and inserts a space around
       the  a,  c, and d verbs.  The -e option produces a script of a, c and d
       commands for the editor ed, which will recreate file2 from file1.   The
       -f  option  produces  a  similar  script,  not  useful  with ed, in the
       opposite order. It may, however,  be  useful  as  input  to  a  stream-
       oriented post-processor.

       The  -c  option  includes  three  lines  of context around each change,
       merging changes whose contexts  overlap.   The  -a  flag  displays  the
       entire file as context.

       Except  in  rare circumstances, diff finds a smallest sufficient set of
       file differences.

FILES

       /tmp/diff[12]

SOURCE

       /src/cmd/diff

SEE ALSO

       cmp(1), comm(1), ed(1)

DIAGNOSTICS

       Exit status is the empty string for no differences, for some,  and  for
       trouble.

BUGS

       Editing  scripts  produced  under  the  -e or -f option are naive about
       creating lines consisting of a single ‘.’.

       When running diff on directories, the notion of what is a text file  is
       open to debate.

                                                                       DIFF(1)