# diff

## NAME



           diff - compare files line by line
    


## SYNOPSIS



           **diff**[_OPTION_]... _FILES_
    


## DESCRIPTION



           Compare FILES line by line.
    
           Mandatory arguments to long options are mandatory for short
           options too.
    
           **--normal**
                  output a normal diff (the default)
    
           **-q** , **--brief**
                  report only when files differ
    
           **-s** , **--report-identical-files**
                  report when two files are the same
    
           **-c** , **-C** NUM, **--context**[=_NUM_]
                  output NUM (default 3) lines of copied context
    
           **-u** , **-U** NUM, **--unified**[=_NUM_]
                  output NUM (default 3) lines of unified context
    
           **-e** , **--ed**
                  output an ed script
    
           **-n** , **--rcs**
                  output an RCS format diff
    
           **-y** , **--side-by-side**
                  output in two columns
    
           **-W** , **--width** =_NUM_
                  output at most NUM (default 130) print columns
    
           **--left-column**
                  output only the left column of common lines
    
           **--suppress-common-lines**
                  do not output common lines
    
           **-p** , **--show-c-function**
                  show which C function each change is in
    
           **-F** , **--show-function-line** =_RE_
                  show the most recent line matching RE
    
           **--label** LABEL
                  use LABEL instead of file name and timestamp (can be
                  repeated)
    
           **-t** , **--expand-tabs**
                  expand tabs to spaces in output
    
           **-T** , **--initial-tab**
                  make tabs line up by prepending a tab
    
           **--tabsize** =_NUM_
                  tab stops every NUM (default 8) print columns
    
           **--suppress-blank-empty**
                  suppress space or tab before empty output lines
    
           **-l** , **--paginate**
                  pass output through 'pr' to paginate it
    
           **-r** , **--recursive**
                  recursively compare any subdirectories found
    
           **--no-dereference**
                  don't follow symbolic links
    
           **-N** , **--new-file**
                  treat absent files as empty
    
           **--unidirectional-new-file**
                  treat absent first files as empty
    
           **--ignore-file-name-case**
                  ignore case when comparing file names
    
           **--no-ignore-file-name-case**
                  consider case when comparing file names
    
           **-x** , **--exclude** =_PAT_
                  exclude files that match PAT
    
           **-X** , **--exclude-from** =_FILE_
                  exclude files that match any pattern in FILE
    
           **-S** , **--starting-file** =_FILE_
                  start with FILE when comparing directories
    
           **--from-file** =_FILE1_
                  compare FILE1 to all operands; FILE1 can be a directory
    
           **--to-file** =_FILE2_
                  compare all operands to FILE2; FILE2 can be a directory
    
           **-i** , **--ignore-case**
                  ignore case differences in file contents
    
           **-E** , **--ignore-tab-expansion**
                  ignore changes due to tab expansion
    
           **-Z** , **--ignore-trailing-space**
                  ignore white space at line end
    
           **-b** , **--ignore-space-change**
                  ignore changes in the amount of white space
    
           **-w** , **--ignore-all-space**
                  ignore all white space
    
           **-B** , **--ignore-blank-lines**
                  ignore changes where lines are all blank
    
           **-I** , **--ignore-matching-lines** =_RE_
                  ignore changes where all lines match RE
    
           **-a** , **--text**
                  treat all files as text
    
           **--strip-trailing-cr**
                  strip trailing carriage return on input
    
           **-D** , **--ifdef** =_NAME_
                  output merged file with '#ifdef NAME' diffs
    
           **--GTYPE-group-format** =_GFMT_
                  format GTYPE input groups with GFMT
    
           **--line-format** =_LFMT_
                  format all input lines with LFMT
    
           **--LTYPE-line-format** =_LFMT_
                  format LTYPE input lines with LFMT
    
                  These format options provide fine-grained control over the
                  output
    
                  of diff, generalizing **-D** /--ifdef.
    
           LTYPE is 'old', 'new', or 'unchanged'.
                  GTYPE is LTYPE or 'changed'.
    
                  GFMT (only) may contain:
    
           %<     lines from FILE1
    
           %>     lines from FILE2
    
           %=     lines common to FILE1 and FILE2
    
           %[-][WIDTH][.[PREC]]{doxX}LETTER
                  printf-style spec for LETTER
    
                  LETTERs are as follows for new group, lower case for old
                  group:
    
           F      first line number
    
           L      last line number
    
           N      number of lines = L-F+1
    
           E      F-1
    
           M      L+1
    
           %(A=B?T:E)
                  if A equals B then T else E
    
                  LFMT (only) may contain:
    
           %L     contents of line
    
           %l     contents of line, excluding any trailing newline
    
           %[-][WIDTH][.[PREC]]{doxX}n
                  printf-style spec for input line number
    
                  Both GFMT and LFMT may contain:
    
           %%     %
    
           %c'C'  the single character C
    
           %c'\OOO'
                  the character with octal code OOO
    
           C      the character C (other characters represent themselves)
    
           **-d** , **--minimal**
                  try hard to find a smaller set of changes
    
           **--horizon-lines** =_NUM_
                  keep NUM lines of the common prefix and suffix
    
           **--speed-large-files**
                  assume large files and many scattered small changes
    
           **--color**[=_WHEN_]
                  color output; WHEN is 'never', 'always', or 'auto'; plain
                  **--color** means **--color=** 'auto'
    
           **--palette** =_PALETTE_
                  the colors to use when **--color** is active; PALETTE is a
                  colon-separated list of terminfo capabilities
    
           **--help** display this help and exit
    
           **-v** , **--version**
                  output version information and exit
    
           FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE
           DIR'.  If **--from-file** or **--to-file** is given, there are no
           restrictions on FILE(s).  If a FILE is '-', read standard input.
           Exit status is 0 if inputs are the same, 1 if different, 2 if
           trouble.
    


* * *