diff1
Compare files line by line
Usage
diff [OPTION] ...
FILES
Overview
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 |
|
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
--colormeans--color='auto'
-
--palette=PALETTE -
the colors to use when
--coloris 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.
Releases
19 releases since Debian 1.1 (Buzz); the text changed 10 times.
--GTYPE-group-format since Debian 3.1 (Sarge);
--LTYPE-line-format since Debian 3.1 (Sarge);
--color since Debian 9 (Stretch);
--context since Debian 7 (Wheezy);
--exclude since Debian 7 (Wheezy);
--exclude-from since Debian 7 (Wheezy);
--from-file since Debian 3.1 (Sarge);
--help since Debian 3.1 (Sarge);
--ifdef since Debian 7 (Wheezy);
--ignore-file-name-case since Debian 3.1 (Sarge);
--ignore-matching-lines since Debian 7 (Wheezy);
--ignore-tab-expansion since Debian 3.1 (Sarge);
--ignore-trailing-space since Debian 8 (Jessie);
--no-dereference since Debian 9 (Stretch);
--no-ignore-file-name-case since Debian 3.1 (Sarge);
--normal since Debian 3.1 (Sarge);
--palette since Debian 9 (Stretch);
--show-function-line since Debian 7 (Wheezy);
--starting-file since Debian 7 (Wheezy);
--strip-trailing-cr since Debian 3.1 (Sarge);
--suppress-blank-empty since Debian 6.0 (Squeeze);
--tabsize since Debian 6.0 (Squeeze);
--to-file since Debian 3.1 (Sarge);
--unified since Debian 7 (Wheezy);
--width since Debian 7 (Wheezy);
-C since Debian 7 (Wheezy);
-D since Debian 7 (Wheezy);
-E since Debian 3.1 (Sarge);
-F since Debian 7 (Wheezy);
-I since Debian 7 (Wheezy);
-S since Debian 7 (Wheezy);
-U since Debian 7 (Wheezy);
-W since Debian 7 (Wheezy);
-X since Debian 7 (Wheezy);
-Z since Debian 8 (Jessie);
-c since Debian 7 (Wheezy);
-u since Debian 7 (Wheezy);
-x since Debian 7 (Wheezy).
--changed-group-format until Debian 3.0 (Woody);
--forward-ed until Debian 3.0 (Woody);
--new-group-format until Debian 3.0 (Woody);
--new-line-format until Debian 3.0 (Woody);
--old-group-format until Debian 3.0 (Woody);
--old-line-format until Debian 3.0 (Woody);
--sdiff-merge-assist until Debian 3.0 (Woody);
--unchanged-group-format until Debian 3.0 (Woody);
--unchanged-line-format until Debian 3.0 (Woody);
-H until Debian 3.0 (Woody);
-L until Debian 3.0 (Woody);
-P until Debian 3.0 (Woody);
-f until Debian 3.0 (Woody);
-h until Debian 3.0 (Woody);
-lines until Debian 3.0 (Woody).