[Mac] diff 使用手册

使用 info diff 命令查看diff的详细使用说明
(可以使用enter、backspace在链接之间跳转。星号*用于标识链接)

比较文件、合并文件
*************************
本手册用于 GNU Diffutils (version 2.8.1) 以及
* 用 diff、diff3、sdiff、cmp 显示文件差异
* 用 patch 更新文件内容

* 目录
*************
概论:基础知识
比较:文件比较的使用场合

输出格式:二路文件的差异显示格式
不完整的行:缺少后续新行的行
目录的比较:比较文件和目录
调整输出:让diff的输出更好看
diff性能:让diff的运行更快

比较三个文件:三路文件的差异显示格式
diff3 合并:从一个共同的先文件版本,进行合并

交互式合并:sdiff命令

使用patch合并:利用patch更新文件内容
制作patch(补丁):

使用cmp:按字节比较文件内容
使用diff:按行比较文件内容
使用diff3:按行比较三个文件的内容
使用patch:用一个diff文件(补丁)更新文件
使用sdiff:把两个文件并排,然后进行交互式合并

概论:
***********
diff命令可以比较两个文件;也可以比较两个目录的对应同名的文件。
diff逐行显示文件的差异时,有几种格式可选。
显示的差异,可称作diff或patch。
若两文件相同,diff无输出;若两文件是二进制,diff只报告文件是否相同。

cmp命令用于按字节显示文件的差异;也可只显示两文件的不同之处(不同的字节),以并排的方式。

diff3命令用于三个文件的比较。三个文件分别是:
* 原始文件
* 用户A基于原始文件做了更新的文件A
* 用户B基于原始文件做了更新的文件B
diff3的功能:
* 同时显示两个用户各自对原始文件的更改
* 把两个用户的更改合并到一起(如果有冲突,则需解决冲突)

一个常见的使用场景:用diff命令生成“差异文件”,把该文件分发给其他人。然后其他人用patch命令把差异文件合并到他们自己的文件里。
当文件之间的差异很小时,这种方法很方便。


文件比较的使用场合
****************
文件之间的差异一般细化到行。当两文件对比时,以其一为底本,以另一个文件为对照,其差异可分而类之:
* 某行被删掉了
* 某行是新添加的
* 某行有若干字符被更新

diff命令可:
* 只显示文件是否不同,不显示差异的详细情况。
* 显示差异的详情时,忽略某些你不关心的东西。(比如单词间的空格)
* 忽略大小写
* 用正则表达式定义可忽略的行

二进制文件没有“行”的概念,所以,使用cmp对比文件,是按字节逐个比较。
如果你只想知道,两个文本文件是否完全相同,也可使用cmp。

diff3命令一般用于三个文本文件的逐行比较。

二进制文件比较,强制以文本方式逐行比较
******************************
diff命令比较两文件时,若发现其中之一是二进制格式,则把两文件都视为二进制,且最后只报告文件是否相同。
diff命令判断一个文件是否是二进制,靠的是文件首的若干字符。具体数目由操作系统决定。一般是几千个。如果这几千个字节里没有'\0'(空字符),则视之为文本文件。

你可以强制diff把两文件视为文本文件,进行逐行比较。使用-a或--text。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值