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格式的文件互相比较时,就不至于因为换行符不一致而出现大量的差异。
diff命令在最简单的情况下,比较给定的两个文件的不同。如果使用“-”代替“文件”参数,则要比较的内容将来自标准输入。diff命令是以逐行的方式,比较文本文件的异同处。如果该命令指定进行目录的比较,则将会比较该目录中具有相同文件名的文件,而不会对其子目录文件进行任何比较 *** 作。下面是linuxdiff命令的具体介绍:diff(diff即different简写)命令用于比较文件的差异。
选项:
-
-a或——text:diff预设只会逐行比较文本文件
-b或_ignore-space-change:不检查空格字符的不同
-B或_ignore-blank-lines:不检查空白行
-c:显示全部内容,并标出不同之处
-C
-d或——minimal:使用不同的演算法,以小的单位来做比较
-D
-e或——ed:此参数的输出格式可用于ed的script文件
-f或-forward-ed:输出的格式类似ed的script文件,但按照原来文件的顺序来显示不同处
-H或_speed-large-files:比较大文件时,可加快速度
-l
-i或_ignore-case:不检查大小写的不同
-l或——paginate:将结果交由pr程序来分物棚页
-n或——rcs:将比较结果以RCS的格式来显示
-N或_new-file:在比较目录时,若文件A仅出现在某个目录中,预设会显示:Onlyin目录,文件A若使用-N参数,则diff会将文件A与一个空白的文件比较
-p:若比较的文件为C语言的程序码文件时,显示差异所在的函数名称
-P或_unidirectional-new-file:与-N类似,但只有当第二个目录包含了第一个目录所没有的文件时,才会将这个文件与空白的文件做比较
-q或_brief仅显示有无差异,不显示详细的信息
-r或——recursive:比较子目录中的文件
-s或_report-identical-files:若没有发现任何差异,仍然显示信息
-S
-t或_expand-tabs:在输出时,将tab字符展开
-T或_initial-tab:在每行前面加上tab字符以便对齐
-u,-U
-v或——version:显示版本信息
-w或_ignore-all-space:忽略全部的空格字符
-W
-x
-X
-y或_side-by-side:以并列的方式显示文件的异同之处
_help:显示帮助
_left-column:在使用-y参数时,若两个文件磨猛某一行内容相同,则仅在左侧的栏位显示该行内容
罩游则 _suppress-common-lines:在使用-y参数时,仅显示不同之处。
以上就是今天的分享了,希望可以帮助到大家。
本文章基于thinkpadE15品牌、centos7系统撰写的。
就是 difference 的意思。这个东西是 diff 命令生成的“区别”数据,也就是两个源代码目录他会识别出有什么不同点并且输出为 diff 文件特有的格式。竖野这个输出的文件可以用 patch 命令打在旧版本的源代码上来实现变成拍或新版本的源代码。
这种升级源代码版本的办法,可以很好的解决每次下载源代码都要重头全部下载导致数据量很大的问题。
如果你下载源代码包只有 .diff ,那么证明你下载错了,因为只有旧的特定版本才能用 diff 升级为特定的袭纤伍新版本。diff 文件是前后两个版本关联的,不是随便可以用的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)