diff

最后更新于:2022-04-02 03:52:13

[TOC] ## 语法 ``` -B 不检查空白行。 -i 不检查大小写的不同。 -N 在比较目录时,若文件A仅出现在某个目录中,预设会显示: -q 仅显示有无差异,不显示详细的信息。 -r 比较子目录中的文件。 -u,-U<列数> 以合并的方式来显示文件内容的不同。 -y 以并列的方式显示文件的异同之处。 -W<宽度>  在使用-y参数时,指定栏宽。 -c  显示全部内文,并标出不同之处。 ``` ## 示例 ### 比较两个文件 ``` > cat testfile_1 HELLO LINUX! LINUX IS A FREE UNIX-TYPE OPTERATING SYSTEM. THIS IS A LINUX TESTFILE! LINUX TEST > cat testfile_2 HELLO WORLD! LINUX IS A FREE UNIX-TYPE OPTERATING SYSTEM. LINUX TEST THIS IS A ADD LINE > diff testfile_1 testfile_2 1c1 < HELLO LINUX! --- > HELLO WORLD! 3d2 < THIS IS A LINUX TESTFILE! 4a4 > THIS IS A ADD LINE ``` ### 并排格式输出 ``` diff testfile_1 testfile_2 -y -W 100 HELLO LINUX! | HELLO WORLD! LINUX IS A FREE UNIX-TYPE OPTERATING SYSTEM. LINUX IS A FREE UNIX-TYPE OPTERATING SYSTEM. THIS IS A LINUX TESTFILE! < LINUX TEST LINUX TEST > THIS IS A ADD LINE ``` 说明 - "|"表示前后2个文件内容有不同 - "<"表示后面文件比前面文件少了1行内容 - ">"表示后面文件比前面文件多了1行内容 ### `-ruN ` 合并方式显示 ``` > diff -ruN testfile_1 testfile_2 --- testfile_1 2020-09-22 16:33:46.000000000 +0800 +++ testfile_2 2020-09-22 16:24:54.000000000 +0800 @@ -1,4 +1,4 @@ -HELLO LINUX! +HELLO WORLD! LINUX IS A FREE UNIX-TYPE OPTERATING SYSTEM. -THIS IS A LINUX TESTFILE! -LINUX TEST \ No newline at end of file +LINUX TEST +THIS IS A ADD LINE ``` > 这种输出方式输出的内容可以用于使用patch命令进行打补丁包 ### 比较目录 ``` > mkdir diff1 > mkdir diff2 > cp testfile_1 diff1 > cp testfile_2 diff2 > diff -ruN diff1 diff2 --- diff1/testfile_1 2020-09-22 16:35:33.000000000 +0800 +++ diff2/testfile_1 1970-01-01 08:00:00.000000000 +0800 @@ -1,4 +0,0 @@ -HELLO LINUX! -LINUX IS A FREE UNIX-TYPE OPTERATING SYSTEM. -THIS IS A LINUX TESTFILE! -LINUX TEST \ No newline at end of file diff -ruN diff1/testfile_2 diff2/testfile_2 --- diff1/testfile_2 1970-01-01 08:00:00.000000000 +0800 +++ diff2/testfile_2 2020-09-22 16:35:36.000000000 +0800 @@ -0,0 +1,4 @@ +HELLO WORLD! +LINUX IS A FREE UNIX-TYPE OPTERATING SYSTEM. +LINUX TEST +THIS IS A ADD LINE ```
';