一、文本文件比较命令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格式的文件互相比较时,就不至于因为换行符不一致而出现大量的差异。
二、二进制文件比较命令cmp
用途
比较两个文件的内容并报告不同的第一个字符。
语法
cmp [ -l | -s ] File1 File2
描述
cmp 命令比较 File1 和 File2 参数指定的文件,并将结果写到标准输出。如果为 File1 或 File2 参数指定 -(减号),则 cmp 命令读取该文件的标准输入。只可以从标准输入读取一个文件。在缺省条件下,如果文件相同,则 cmp 命令不显示任何内容。如果它们不同,则 cmp 命令显示发生不同的第一个字节数和行数。如果指定了 -l 标志,并且如果一个文件是另一文件的初始后继(即,如果在查找任何差别之前,cmp 命令读取文件中的文件结束符),则 cmp 命令记下它。通常,使用 cmp 命令比较非文本文件,使用 diff 命令比较文本文件。
标志
-l 对于每个不同,(小写字母 L)显示十进制的字节数和八进制的不同字节。
-s 只返回退出值。值 0 指示相同的文件;值 1 指示不同的文件;值 2 指示不可访问的文件或缺少选项。
退出状态
该命令返回以下退出值:
0 文件相同。
1 文件不同。即使一个文件是另一个文件的初始后继(一个文件与另一个文件的第一个部分相同),也给出该值。
>1 发生错误。
示例
1. 要确定两个文件是否相同,请输入:
cmp prog.o.bak prog.o
这比较 prog.o.bak 和 prog.o。如果文件相同,则不显示消息。如果文件不同,则显示第一个不同的位置;例如:
prog.o.bak prog.o differ: char 4, line 1
如果显示消息 cmp: EOF on prog.o.bak,则 prog.o 的第一部分与 prog.o.bak 相同,但在 prog.o 中还有其他数据。
2. 要显示不同字节的每个对,请输入:
cmp -l prog.o.bak prog.o
这比较文件,然后显示字节数(使用十进制格式)和每个不同的不同字节(使用八进制格式)。例如,如果第五个字节在 prog.o.bak 中是八进制 101,在 prog.o 中是 141,则 cmp 命令显示:
5 101 141
3. 要比较两个文件,而不写任何消息,请输入:
cmp -s prog.c.bak prog.c
这样,如果文件相同,则给出值 0,如果不同,则给出值 1,或者如果发生错误,则给出值 2。该命令形式通常用在 shell 步骤中。例如:
if cmp -s prog.c.bak prog.c
then
echo No change
fi
如果两个文件相同,则该部分的 shell 步骤显示 No change。
- 浏览: 86106 次
- 来自: 上海
-
文章分类
最新评论
发表评论
-
linux 环境下修改readonly变量(例如TMOUT)
2016-01-20 20:23 4782$ readonly PI=3.14 $ unset P ... -
嵌入式汇编
2015-01-24 15:54 632转自<http://blog.csdn.net ... -
linux版本信息以及x86与x86_64的区别
2015-01-18 11:53 803转自<http://www.cnblogs. ... -
linux启动
2015-01-17 14:22 389转自<http://www.docin.com/p-5 ... -
VMWare安装Ubuntu 12.04开启虚拟机的Unity Mode模式
2014-10-11 08:59 628转自<http://www.2cto.com/os/ ... -
linux fork函数
2014-09-29 13:58 628转自<http://blog.csdn.net/jas ... -
sudo与sudoers
2014-08-04 18:28 625from<http://www.cnblogs.com ... -
unix编程艺术中的17点编程原则--设计开发者的至高准则
2014-07-20 11:08 554转自<http://blog.csdn.net/v_j ... -
ubuntu update缺少公钥解决方法 NO_PUBKEY
2014-07-17 13:42 780转自<http://chenpeng.info/ht ... -
linux重定向
2014-07-14 20:29 560转自<http://www.cnblogs.com/l ... -
硬盘安装linux
2014-07-08 18:49 472可以参考http://jingyan.baidu.com/a ... -
查看登陆的几个常用命令
2014-07-05 13:17 396last lastlog dmesg dmesg | ... -
linux上几个硬件命令
2014-07-05 13:15 445hdparm :观察硬盘的种种信息; lspci : ... -
万用字符与特殊字符
2014-07-08 09:28 545* :万用字符,代表0个或多个字符(或数字) ? :万 ... -
linux下一些常用的关机/重启命令
2014-07-04 14:09 541在linux下一些常用的关机/重启命令有shutdow ... -
linux 软件安装
2014-07-03 09:41 477一、rpm包安装方式步 ... -
linux需要备份的目录
2014-07-03 09:46 1018/etc/整个目录 /home整个目录 /var/sp ... -
linux学习网站
2014-07-03 09:46 536自由软件技术交流网:http://freesf.tnc.e ... -
LINUX下各个目录详细介绍
2014-07-02 22:14 445/bin 这是放例如 ... -
Linux必学的60个命令
2014-07-02 22:02 583转自http://blog.csdn.net/immorta ...
相关推荐
### Linux基本指令使用详解 #### 一、简介 在Linux操作系统中,命令行接口(Command Line Interface, CLI)是用户与系统交互的重要方式之一。通过掌握一系列基础命令,用户可以高效地进行文件管理、系统配置等工作。...
以下是一些Linux必备的指令详解: 1. **bash**:GNU Bourne-Again SHell,是Linux中最常用的shell,用于交互式登录和脚本执行。 2. **cat**:用于查看文本文件的内容,如`cat file.txt`。 3. **chgrp**:更改文件...
### Linux基本指令详解 #### 一、alias —— 指令别名 - **功能简介**:`alias`命令允许用户为一个或多个复杂的命令序列定义简短的别名,方便用户记忆与输入。 - **基本用法**: - `alias`:列出当前系统中已...
### Linux必备指令详解 在Linux操作系统中,熟练掌握一系列常用命令是进行高效操作的基础。本文将根据提供的摘要信息,详细解读这些重要的Linux指令及其应用场景。 #### 一、基础操作指令 1. **bash** - **功能...
- **命令**:指在Linux系统中使用的各种指令,通过命令行界面执行特定的任务。 - **简明教程**:意味着该教程旨在提供易于理解且实用的内容,适合初学者快速上手。 #### 部分内容知识点详解 ##### 1. Linux基础...
入门学习Linux常用必会60个命令实例详解 Linux必学的60个命令 Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。所以,在Linux系统上工作离不...
### Linux/UNIX命令详解 #### 一、系统管理和文件操作命令 **1. acctcom** - **功能**:用于查看进程会计文件。 - **用法**:`acctcom [选项] [文件]` - **说明**:通过此命令可以查看系统中进程的资源使用情况。 ...
### Linux常用命令详解 Linux作为一款强大的开源操作系统,在服务器领域占据着极其重要的地位。对于Linux初学者来说,熟练掌握一些常用的命令是十分必要的。本文将根据提供的内容对这些命令进行详细的解析。 #### ...