DIFF(1) User Commands DIFF(1)


diff - compare files line by line


diff [ OPTION]... FILES


Compare files line by line.
-i --ignore-case
Ignore case differences in file contents.
Ignore case when comparing file names.
Consider case when comparing file names.
-E --ignore-tab-expansion
Ignore changes due to tab expansion.
-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 whose lines are all blank.
-I RE --ignore-matching-lines= RE
Ignore changes whose lines all match RE.
Strip trailing carriage return on input.
-a --text
Treat all files as text.
-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.
--label LABEL
Use LABEL instead of file name.
-p --show-c-function
Show which C function each change is in.
-F RE --show-function-line= RE
Show the most recent line matching RE.
-q --brief
Output only whether files differ.
-e --ed
Output an ed script.
Output a normal diff.
-n --rcs
Output an RCS format diff.
-y --side-by-side
Output in two columns.
-W NUM --width= NUM
Output at most NUM (default 130) print columns.
Output only the left column of common lines.
Do not output common lines.
-D NAME --ifdef= NAME
Output merged file to show `#ifdef NAME' diffs.
--GTYPE-group-format= GFMT
Similar, but format GTYPE input groups with GFMT.
--line-format= LFMT
Similar, but format all input lines with LFMT.
--LTYPE-line-format= LFMT
Similar, but format LTYPE input lines with LFMT.
LTYPE is `old', `new', or `unchanged'.
GTYPE is LTYPE or `changed'.
GFMT may contain:
lines from FILE1
lines from FILE2
lines common to FILE1 and FILE2
printf-style spec for LETTER
LETTERs are as follows for new group, lower case for old group:
first line number
last line number
number of lines = L-F+1
LFMT may contain:
contents of line
contents of line, excluding any trailing newline
printf-style spec for input line number
Either GFMT or LFMT may contain:
the single character C
the character with octal code OOO
-l --paginate
Pass the output through `pr' to paginate it.
-t --expand-tabs
Expand tabs to spaces in output.
-T --initial-tab
Make tabs line up by prepending a tab.
--tabsize= NUM
Tab stops are every NUM (default 8) print columns.
-r --recursive
Recursively compare any subdirectories found.
-N --new-file
Treat absent files as empty.
Treat absent first files as empty.
-s --report-identical-files
Report when two files are the same.
-x PAT --exclude= PAT
Exclude files that match PAT.
-X FILE --exclude-from= FILE
Exclude files that match any pattern in FILE.
-S FILE --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.
--horizon-lines= NUM
Keep NUM lines of the common prefix and suffix.
-d --minimal
Try hard to find a smaller set of changes.
Assume large files and many scattered small changes.
-v --version
Output version info.
Output this help.

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 FILES. If a FILE is `-', read standard input. Exit status is 0 if inputs are the same, 1 if different, 2 if trouble.


Written by Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, and Len Tower.


Report bugs to <bug-gnu-utils@gnu.org>.


Copyright © 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


The full documentation for diff is maintained as a Texinfo manual. If the info and diff programs are properly installed at your site, the command
info diff

should give you access to the complete manual.

April 2004 diffutils 2.8.7