Unix Man page/Perldoc/Info page, English-Chinese Dictionary,
Chinese-English Dictionary
File: diff.info, Node: Invoking diff, Next: Invoking diff3, Prev: Invoking cmp, Up: Top
Invoking `diff'
***************
The format for running the `diff' command is:
diff OPTIONS... FILES...
In the simplest case, two file names FROM-FILE and TO-FILE are
given, and `diff' compares the contents of FROM-FILE and TO-FILE. A
file name of `-' stands for text read from the standard input. As a
special case, `diff - -' compares a copy of standard input to itself.
If one file is a directory and the other is not, `diff' compares the
file in the directory whose name is that of the non-directory. The
non-directory file must not be `-'.
If two file names are given and both are directories, `diff'
compares corresponding files in both directories, in alphabetical
order; this comparison is not recursive unless the `-r' or
`--recursive' option is given. `diff' never compares the actual
contents of a directory as if it were a file. The file that is fully
specified may not be standard input, because standard input is nameless
and the notion of "file with the same name" does not apply.
If the `--from-file=FILE' option is given, the number of file names
is arbitrary, and FILE is compared to each named file. Similarly, if
the `--to-file=FILE' option is given, each named file is compared to
FILE.
`diff' options begin with `-', so normally file names may not begin
with `-'. However, `--' as an argument by itself treats the remaining
arguments as file names even if they begin with `-'.
An exit status of 0 means no differences were found, 1 means some
differences were found, and 2 means trouble.
* Menu:
* diff Options:: Summary of options to `diff'.
File: diff.info, Node: diff Options, Up: Invoking diff
Options to `diff'
=================
Below is a summary of all of the options that GNU `diff' accepts.
Most options have two equivalent names, one of which is a single letter
preceded by `-', and the other of which is a long name preceded by
`--'. Multiple single letter options (unless they take an argument)
can be combined into a single command line word: `-ac' is equivalent to
`-a -c'. Long named options can be abbreviated to any unique prefix of
their name. Brackets ([ and ]) indicate that an option takes an
optional argument.
`-a'
`--text'
Treat all files as text and compare them line-by-line, even if they
do not seem to be text. *Note Binary::.
`-b'
`--ignore-space-change'
Ignore changes in amount of white space. *Note White Space::.
`-B'
`--ignore-blank-lines'
Ignore changes that just insert or delete blank lines. *Note
Blank Lines::.
`--binary'
Read and write data in binary mode. *Note Binary::.
`-c'
Use the context output format, showing three lines of context.
*Note Context Format::.
`-C LINES'
`--context[=LINES]'
Use the context output format, showing LINES (an integer) lines of
context, or three if LINES is not given. *Note Context Format::.
For proper operation, `patch' typically needs at least two lines of
context.
On older systems, `diff' supports an obsolete option `-LINES' that
has effect when combined with `-c' or `-p'. POSIX 1003.1-2001
(*note Standards conformance::) does not allow this; use `-C LINES'
instead.
`--changed-group-format=FORMAT'
Use FORMAT to output a line group containing differing lines from
both files in if-then-else format. *Note Line Group Formats::.
`-d'
`--minimal'
Change the algorithm perhaps find a smaller set of changes. This
makes `diff' slower (sometimes much slower). *Note diff
Performance::.
`-D NAME'
`--ifdef=NAME'
Make merged `#ifdef' format output, conditional on the preprocessor
macro NAME. *Note If-then-else::.
`-e'
`--ed'
Make output that is a valid `ed' script. *Note ed Scripts::.
`-E'
`--ignore-tab-expansion'
Ignore changes due to tab expansion. *Note White Space::.
`-f'
`--forward-ed'
Make output that looks vaguely like an `ed' script but has changes
in the order they appear in the file. *Note Forward ed::.
`-F REGEXP'
`--show-function-line=REGEXP'
In context and unified format, for each hunk of differences, show
some of the last preceding line that matches REGEXP. *Note
Specified Headings::.
`--from-file=FILE'
Compare FILE to each operand; FILE may be a directory.
`--help'
Output a summary of usage and then exit.
`--horizon-lines=LINES'
Do not discard the last LINES lines of the common prefix and the
first LINES lines of the common suffix. *Note diff Performance::.
`-i'
`--ignore-case'
Ignore changes in case; consider upper- and lower-case letters
equivalent. *Note Case Folding::.
`-I REGEXP'
`--ignore-matching-lines=REGEXP'
Ignore changes that just insert or delete lines that match REGEXP.
*Note Specified Folding::.
`--ignore-file-name-case'
Ignore case when comparing file names during recursive comparison.
*Note Comparing Directories::.
`-l'
`--paginate'
Pass the output through `pr' to paginate it. *Note Pagination::.
`--label=LABEL'
Use LABEL instead of the file name in the context format (*note
Context Format::) and unified format (*note Unified Format::)
headers. *Note RCS::.
`--left-column'
Print only the left column of two common lines in side by side
format. *Note Side by Side Format::.
`--line-format=FORMAT'
Use FORMAT to output all input lines in if-then-else format.
*Note Line Formats::.
`-n'
`--rcs'
Output RCS-format diffs; like `-f' except that each command
specifies the number of lines affected. *Note RCS::.
`-N'
`--new-file'
In directory comparison, if a file is found in only one directory,
treat it as present but empty in the other directory. *Note
Comparing Directories::.
`--new-group-format=FORMAT'
Use FORMAT to output a group of lines taken from just the second
file in if-then-else format. *Note Line Group Formats::.
`--new-line-format=FORMAT'
Use FORMAT to output a line taken from just the second file in
if-then-else format. *Note Line Formats::.
`--old-group-format=FORMAT'
Use FORMAT to output a group of lines taken from just the first
file in if-then-else format. *Note Line Group Formats::.
`--old-line-format=FORMAT'
Use FORMAT to output a line taken from just the first file in
if-then-else format. *Note Line Formats::.
`-p'
`--show-c-function'
Show which C function each change is in. *Note C Function
Headings::.
`-q'
`--brief'
Report only whether the files differ, not the details of the
differences. *Note Brief::.
`-r'
`--recursive'
When comparing directories, recursively compare any subdirectories
found. *Note Comparing Directories::.
`-s'
`--report-identical-files'
Report when two files are the same. *Note Comparing Directories::.
`-S FILE'
`--starting-file=FILE'
When comparing directories, start with the file FILE. This is
used for resuming an aborted comparison. *Note Comparing
Directories::.
`--speed-large-files'
Use heuristics to speed handling of large files that have numerous
scattered small changes. *Note diff Performance::.
`--strip-trailing-cr'
Strip any trailing carriage return at the end of an input line.
*Note Binary::.
`--suppress-common-lines'
Do not print common lines in side by side format. *Note Side by
Side Format::.
`-t'
`--expand-tabs'
Expand tabs to spaces in the output, to preserve the alignment of
tabs in the input files. *Note Tabs::.
`-T'
`--initial-tab'
Output a tab rather than a space before the text of a line in
normal or context format. This causes the alignment of tabs in
the line to look normal. *Note Tabs::.
`--to-file=FILE'
Compare each operand to FILE; FILE may be a directory.
`-u'
Use the unified output format, showing three lines of context.
*Note Unified Format::.
`--unchanged-group-format=FORMAT'
Use FORMAT to output a group of common lines taken from both files
in if-then-else format. *Note Line Group Formats::.
`--unchanged-line-format=FORMAT'
Use FORMAT to output a line common to both files in if-then-else
format. *Note Line Formats::.
`--unidirectional-new-file'
When comparing directories, if a file appears only in the second
directory of the two, treat it as present but empty in the other.
*Note Comparing Directories::.
`-U LINES'
`--unified[=LINES]'
Use the unified output format, showing LINES (an integer) lines of
context, or three if LINES is not given. *Note Unified Format::.
For proper operation, `patch' typically needs at least two lines of
context.
On older systems, `diff' supports an obsolete option `-LINES' that
has effect when combined with `-u'. POSIX 1003.1-2001 (*note
Standards conformance::) does not allow this; use `-U LINES'
instead.
`-v'
`--version'
Output version information and then exit.
`-w'
`--ignore-all-space'
Ignore white space when comparing lines. *Note White Space::.
`-W COLUMNS'
`--width=COLUMNS'
Output at most COLUMNS (default 130) print columns per line in
side by side format. *Note Side by Side Format::.
`-x PATTERN'
`--exclude=PATTERN'
When comparing directories, ignore files and subdirectories whose
basenames match PATTERN. *Note Comparing Directories::.
`-X FILE'
`--exclude-from=FILE'
When comparing directories, ignore files and subdirectories whose
basenames match any pattern contained in FILE. *Note Comparing
Directories::.
`-y'
`--side-by-side'
Use the side by side output format. *Note Side by Side Format::.
|