linux的命令diff linux的命令解释器

Linux命令diff、patch

背景

为永兴等地区用户提供了全套网页设计制作服务,及永兴网站建设行业解决方案。主营业务为成都网站设计、成都网站建设、永兴网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

在Linux系统环境的工作过程中,经常遇到需要对比文件差异的情况,此时,使用Linux提供的diff工具可以方便的发现文件不同版本之间差异,从而快速排除解决问题。

Windows端有强大文件对比工具BeyondCompare。

patch 命令可以将diff命令的输出应用到原始的对比文件中,将新版本的更新应用到原始的文件中。

命令

diff [option] [file1] [file2]

patch [option] [file1] [file_differ]

测试环境

WSL: Linux PERSONALPC 4.4.0-19041-Microsoft #488-Microsoft Mon Sep 01 13:43:00 PST 2020 x86_64 x86_64 x86_64 GNU/Linux

测试过程

diff命令

有时候可能会需要对比两个文件的差异,生成patch,在Linux下就可以使用diff命令

只想查看两个文件的差异的话,可以使用:diff file1 file2

要讲差异生成patch的话可以使用参数-u:diff -u file1 file2 file.patch

要把补丁打到file1上的话,可以使用:patch -p0 file.patch(p后面的数字取决于你在哪一级目录下打patch,0表示当前目录,1表示上一级目录,以此类推,目录是相对于生成patch的目录而言的)

去除补丁的话就用:patch -RE file.patch

diff后面可以跟几个常用参数说明:-u    生成patch

                                                    -r    递归对比目录中的所有文件

                                                    -a    将所有文件视为文本

                                                    -N   当递归对比目录下的文件时,一侧目录下面没有的文件可以看做是有一个对应名字的空文件,不加这个的话就只对比两头都有的文件

diff命令和patch命令的使用

diff 命令是 linux上非常重要的工具,用于比较文件的内容,特别是比较两个版本不同的文件以找到改动的地方。diff在命令行中打印每一个行的改动。最新版本的diff还支持二进制文件。diff程序的输出被称为补丁 (patch),因为Linux系统中还有一个patch程序,可以根据diff的输出将a.c的文件内容更新为b.c。diff是svn、cvs、git等版本控制工具不可或缺的一部分。

diff命令的格式一般为:

diff [参数][文件或者目录1][文件或者目录2]

例如,有文件test1和test2:

将会输出:

格式的含义如注释所示。

diff 的normal 显示格式有三种提示:

a - add

c - change

d - delete

比较常用的是以合并的方式显示两个文件的不同:

输出如:

这种输出方式输出的内容可以用于使用patch命令进行打补丁包。patch命令我们稍后再看。

diff命令也可以比较两个文件夹的不同:

例如有两个文件夹testa和test,将test1和test2放进去:

得到:

第一部分是文件的信息

"---"表示变动前的文件,"+++"表示变动后的文件。

第二部分表示变动的位置

@@ -1,11 +1,5 @@

减号表示第一个文件,后面的表示第一行起一共11行。加号表示第二个文件。后面是第一行起一共5行。

接下来的表示区别的部分。

例如:

将得到:

这种模式中

“|”表示前后2个文件内容有不同

“”表示后面文件比前面文件少了1行内容

“”表示后面文件比前面文件多了1行内容

我们可以先用diff命令生成patch文件。然后使用patch命令将第二个文件内容修改成第一个文件的内容。

例如上述的test1和test2:

之后test2的内容就会和test1内容一致了。

svn diff生成的patch也可以用于更新文件

Linux 基础教程 11-基本命令diff和comm

diff命令主要用来比较文件的差异。diff会以逐行的方式比较文本文件的差异,如果指定比较的是目录,则diff会比较目录中相同文件名的文件,但不会比较其子目录。

主要参数如下所示:

second.txt

comm命令主要用于比较两个 已经排过序 的文件。

主要参数如下所示:

comm在对比文件前 一定要先排序 ,否则会出现报错提示,以上面diff示例的中的first.txt和second.txt为例


名称栏目:linux的命令diff linux的命令解释器
网页路径:http://ybzwz.com/article/dopihpi.html