功能说明:比较文件的差异。
语法:diff [OPTION]... FILES
实例:
diff -ur temp1 temp2
diff -ur temp1 temp2 > temp.diff
option详细:
--normal | output a normal diff (This is 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 (this option 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. |
-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. |
-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, --ignore-matching-lines=RE | ignore changes whose lines all 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: %%: A literal '%' %c'C': the single character C %c'OOO': the character with octal code OOOC: 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. |
--help | display a help message and exit. |
-v, --version | output version information and exit. |