linux 下做兩個資料夾的比對
diff 程式可以對兩個檔案檢查之間的相異點。
但同時也可以檢查兩個資料夾下所有檔案的相異點
diff -ruN folder1/ folder2/
不過出來的資料很雜亂, 因為對於commen file來說, diff還會把檔案不同的地方秀出來, 如果只是想知道檔案一不一樣的話, 可以加-q, 效果和–brief一樣
diff -q dir1 dir2
這樣只會比較第一層, 如果底層也要比, 再加一個-r
diff -qr dir1 dir2
# diff --help
Usage: diff [OPTION]... FILES
Compare files line by line.
-i --ignore-case Ignore case differences in file contents.
--ignore-file-name-case Ignore case when comparing file names.
--no-ignore-file-name-case 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-cr 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.
--normal 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.
--left-column Output only the left column of common lines.
--suppress-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
%[-][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
LFMT 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
Either GFMT or LFMT may contain:
%% %
%c'C' the single character C
%c'\OOO' 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.
-r --recursive Recursively compare any subdirectories found.
-N --new-file Treat absent files as empty.
--unidirectional-new-file 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.
--speed-large-files Assume large files and many scattered small changes.
-v --version Output version info.
--help 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.
Report bugs to <bug-gnu-utils@gnu.org>.
#