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]
              colorize the output; WHEN can be 'never', 'always', or
              'auto' (the default)
       --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.