如果两个
二进制文件
相同,diff就什么也不显示,否则只简单报告一下这两个文件是不相同的。
diff命令的功能为逐行比较两个文本文件,列出其不同之处。由于二进制文件没有行结构,diff程序将不显示所有的编辑行信息。
‘贰’ shell 命令 diff 的使用简介
diff 命令是 Linux 上比较重要的命令行工具,用于比较文本内容,并找到不相同的地方, diff 在命令行中打印每一行的改动之处。 diff 程序的输出被称为补丁( patch ),在 Linux 系统中还有一个 patch 程序,可以根据 diff 的输出,将文件内容更新为另一个文件内容, diff 是版本控制工具不可或缺的一部分。
diff 命令能比较单个文件或者目录内容。
如果指定比较的是文件,则只有当输入为文本文件时才有效。以逐行的方式,比较文本文件的异同处。
如果指定比较的是目录的的时候, diff 命令会比较两个目录下名字相同的文本文件。列出不同的二进制文件、公共子目录和只在一个目录出现的文件。
diff 的 normal 显示格式有三种提示:
上面的 “3c3” 和 “8c8” 表示 log2014.log 和 log20143.log 文件在 3 行和第 8 行内容有所不同; "11,12d10" 表示第一个文件比第二个文件多了第 11 和 12 行。
“|”表示前后 2 个文件内容有不同
“<”表示后面文件比前面文件少了 1 行内容
“>”表示后面文件比前面文件多了 1 行内容
这种方式在开头两行作了比较文件的说明,这里有三中特殊字符:
“+” 比较的文件的后者比前着多一行
“-” 比较的文件的后者比前着少一行
“!” 比较的文件两者有差别的行
它的第一部分,也是文件的基本信息:
--- log2014.log 2012-12-07 18:01:54.000000000 +0800
+++ log2013.log 2012-12-07 16:36:26.000000000 +0800
"---"表示变动前的文件,"+++"表示变动后的文件。
第二部分,变动的位置用两个@作为起首和结束。
@@ -1,12 +1,10 @@
前面的 "-1,12" 分成三个部分:减号表示第一个文件(即 log2014.log ),"1"表示第 1 行,"12"表示连续 12 行。合在一起,就表示下面是第一个文件从第 1 行开始的连续 12 行。同样的, "+1,10" 表示变动后,成为第二个文件从第 1 行开始的连续 10 行。
‘叁’ linux diff命令详解
diff命令在最简单的情况下,比较给定的两个文件的不同。如果使用“-”代替“文件”参数,则要比较的内容将来自标准输入。diff命令是以逐行的方式,比较文本文件的异同处。如果该命令指定进行目录的比较,则将会比较该目录中具有相同文件名的文件,而不会对其子目录文件进行任何比较操作。下面是linuxdiff命令的具体介绍:‘肆’ linux diff命令显示结果解析
104c104表示两个文件都有此行,但该行有不同处
107d106表示前个文件有此行,后一文件没有
111a111表示后个文件有此行,前一文件没有
这里数字都是行数
‘伍’ linux diff命令
如果两个二进制文件相同,diff就什么也不显示,否则只简单报告一下这两个文件是不相同的。
diff命令的功能为逐行比较两个文本文件,列出其不同之处。由于二进制文件没有行结构,diff程序将不显示所有的编辑行信息。
‘陆’ 计算机编程中的diff是什么意思
diff 命令比较文本文件。它能比较单个文件或者目录内容。
注:
diff 命令只有当输入为文本文件时才有效。
如果指定了 Directory1 和 Directory2 参数,diff 命令比较两个目录下名字相同的文本文件。列出不同的二进制文件、公共子目录和只在一个目录出现的文件。 当 diff 命令运行于常规文件时,且当目录比较期间比较不同的文本文件时,diff 命令显示文件中哪些行必须更改以保持它们一致。如果 File1 和 File2 参数都不是目录,其中之一可能给定负号“-”,以采用标准输入。如果 File1 参数是目录,则使用目录中与 File2 参数指定的文件名一致的那个文件。
‘柒’ Linux文件比较命令的diff命令
1>diff命令的功能
linux中diff命令的功能为逐行比较两个文本文件,列出其不同之处。它对给出的文件进行系统的检查,并显示出两个文件中所有不同的行,不要求事先对文件进行排序。
2>语法
diff
[options]
file1
file2
该命令告诉用户,为了使两个文件file1和file2一致,需要修改它们的哪些行。如果用”-”表示file1或file2,则表示标准输入。如果file1或file2是目录,那么diff将使用该目录中的同名文件进行比较。
3>[options]主要参数
-a:将所有文件当作文本文件来处理。
-b或–ignore-space-change
忽略空格造成的不同。
-b或–ignore-blank-lines
忽略空行造成的不同。
-c:使用纲要输出格式。
-h:利用试探法加速对大文件的搜索。
-i:忽略大小写的变化。
-n
–rcs:输出rcs格式。
-n或–new-file
在比较目录时,若文件a仅出现在某个目录中,会显示:only
in目录;文件a若使用-n参数,则diff会将文件a与一个空白的文件比较。
-r或–recursive
比较子目录中的文件。
-u,-u<列数>或–unified=<列数>
以合并的方式来显示文件内容的不同。
4>使用方法的实例说明
例如:
diff
/usr/xu
mine
把目录/usr/xu
中名为mine的文件与当前目录中的mine文件进行比较。
通常输出由下述形式的行组成:
n1
a
n3,n4
n1,n2
d
n3
n1,n2
c
n3,n4
这些行类似ed命令把filel转换成file2。字母(a、d和c)之前的行号(n1,n2)是针对file1的,其后面的行号(n3,n4)是针对file2的。字母a、d和c分别表示附加、删除和修改操作。
在上述形式的每一行的后面跟随受到影响的若干行,以”<”打头的行属于第一个文件,以”>”打头的行属于第二个文件。
diff能区别块和字符设备文件以及fifo(管道文件),不会把它们与普通文件进行比较。
如果file1和file2都是目录,则diff会产生很多信息。
5>diff最常用的功能
diff有很多功能平时我们不常用到,最常用的功能莫过于生成patch文件了:
diff
-urn
old/
new/
>
mysoft.patch
参数
-u
表示使用
unified
格式,-r
表示比较目录,-n
表示将不存在的文件当作空文件处理,这样新添加的文件也会出现在patch文件中。
然后在需要应用patch的地方使用下述命令即可:
patch
-p0
<
mysoft.patch
diff的
-y
命令(长格式为
–side-by-side)可以将屏幕分成左右两部分,来比较两个文件之间的差异。许多图形化的比较工具都有这个功能,但如果只能使用命令行,这个参数就相当有用了。如果要改变左右各部分的宽度,可以通过
-w
(–width)参数来指定。
–ignore-blank-lines
参数可以不检查空白行。这样dos格式和unix格式的文件互相比较时,就不至于因为换行符不一致而出现大量的差异。
‘捌’ 为什么git diff显示不出两个文件不同的地方
你好,git diff HEAD 是以当前文件和git 库里面的文件做DIFF,你输入命令后显示的意思不是a/ 目录下的wanglei.txt 和 b/目录下wanglei.txt之间不一样,而是a/wanglei.txt 代表你提交到git 库里面文件wanglei.txt,而b/wanglei.txt 是后来你在本地做了修改的wanglei.txt文件,都是在当前的目录下wanglei.txt,不过一个是已经被提交到git 库里面了 ,另一个是你刚刚替换了,和之前的不一样了 ,所以git diff 会显示这个结果,如果你想学习git 我推荐你看下 progit 和git权威指南 下载链接http://download.csdn.net/detail/dongwuming/5859863
‘玖’ linux diff为什么两个文件没有差别也显示全文都不一样
肯定有差别,比如不可见字符,像是每行最后空格个数,或者回车换行和换行的差别