diff命令是用比较两个文件和文件夹,如果比较的是两个文件,则会逐行比较两个文件,如果比较的目录的时候,则diff会比较两个文件下相同名字的文件,列出不同的二进制文件,公共子目录及只在一个目录中出现的文件。
例子1 其中1c1表示第一行,c表示change,a表示add,d表示delete
$ diff test1 test2 1c1 < 123 --- > sdf 3c3 < 3432 --- > 231 5c5 < adfs --- > sadf 7c7 < ewr ---
例子2 -y表示并排比较2个文件,后面也可以加上-W 表示指定栏宽。
“|”表示前后2个文件内容有不同
“<”表示后面文件比前面文件少了1行内容
“>”表示后面文件比前面文件多了1行内容
diff test1 test2 -y 123 | sdf 3432 | 231 adfs | sadf ewr | 2qwreqw
例子3 -c表示竖排比较2个文件
“+” 比较的文件的后者比前着多一行
“-” 比较的文件的后者比前着少一行
“!” 比较的文件两者有差别的行
diff test1 test2 -c *** test1 2015-09-07 00:05:39.000000000 +0800 --- test2 2015-09-07 00:05:54.000000000 +0800 *************** *** 1,7 **** ! 123 ! 3432 ! adfs ! ewr --- 1,7 ---- ! sdf ! 231 ! sadf ! 2qwreqw
例子4 -u表示标准比较,---表示第一个文件,+++表示第二个文件,其中@@部分,表示第一个文件从1-7行开始,第二个文件从1-7行开始
diff test1 test2 -u --- test1 2015-09-07 00:05:39.000000000 +0800 +++ test2 2015-09-07 00:05:54.000000000 +0800 @@ -1,7 +1,7 @@ -123 +sdf -3432 +231 -adfs +sadf -ewr +2qwreqw
例子5 diff也可以用来比较2个文件夹
diff test test3 Only in test3: .DS_Store Only in test: test1 Only in test3: test2 Only in test3: test4
例子6 可以输出补丁文件
diff -ruN test1 test2 >testpatch.log
例子7 使用补丁文件
cat test1 123 3432 adfs ewr
patch test1 testpatch.log patching file test1
cat test1 sdf 231 sadf 2qwreqw
参考文档
http://www.cnblogs.com/peida/archive/2012/12/12/2814048.html
时间: 2024-10-24 05:39:35