Linux命令 diff cmp patch
diff: 以行为单位进行比对
$ cat passwd | sed -e '4d' -e '6c no six line' > passwd.new
$ cat -n passwd.new
1 root:x:0:0:root:/root:/bin/bash
2 daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
3 bin:x:2:2:bin:/bin:/usr/sbin/nologin
4 sync:x:4:65534:sync:/bin:/bin/sync
5 no six line
6 man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
$ diff passwd passwd.new
4d3 # 左边第4行被删掉(d)了,基准是右边的第3行
< sys:x:3:3:sys:/dev:/usr/sbin/nologin # 列出左边(<)文件中被删除的一行
6c5 # 左边文件的第6行被替换为右边文件的第5行
< games:x:5:60:games:/usr/games:/usr/sbin/nologin # 左边文件第6行的内容
---
> no six line # 右边文件第5行的内容
不要用diff 去比对两个完全不相干的文件,没意义。
diff 也可以比对整个目录下的差异,

cmp: 以字节为单位进行比对
$ cmp passwd passwd.new
passwd passwd.new 不同:第 120 字节,第 4 行 # 第一个发现的不同点在第4行第120字节处。
cmp可以用来比对binary文件。
patch: 该指令与diff 密不可分
示例: 将旧文件(passwd)更新为新文件(passwd.new)
1). 先制作补丁文件
$ diff -Naur passwd passwd.new > passwd.patch

2). 更新旧文件
$ patch -pN < patch_file <==更新
$ patch -R -pN < patch_file <==还原
$ patch -p0 < passwd.patch # 更新
$ patch -R -p0 < passwd.patch # 还原
使用'-p0'的原因,因为在比对新旧文件是在同一个目录下,因此不需要减去目录。如果是使用整体目录比对时,就得要依据建立patch文件所在目录来进行目录删减了。不懂??

Linux命令 diff cmp patch的更多相关文章
- Linux命令——diff、patch
简介 diff以行为单位比较不同ASCII文件差异,可以输出一组指令,用于指导如何更改一个文件使其与第二个文件相同.diff在软件开发时多用于比较新旧版本代码,和patch连用可以将文件间区别做成补丁 ...
- Linux下diff与patch命令的配合使用
在Linux下,diff与patch命令配合使用可以进行简单的代码维护工作. [A] diff diff命令用于比较文件的差异,可以用于制作patch文件.但此命令参数众多.格式多样,所以在此仅介绍较 ...
- linux命令-diff对比文件工具
diff 命令是 linux上非常重要的工具,用于比较文件的内容,特别是比较两个版本不同的文件以找到改动的地方.diff在命令行中打印每一个行的改动.最新版本的diff还支持二进制文件.diff程序的 ...
- 文件对比工具 diff cmp patch(没弄完) pr
diff不仅可以对比文件,而且可以对比文件夹中的文件. 解析: diff用在比对两个文件的差异,并且是以行为单位进行对比.一般用在ascii纯文本档的对比上. 例 在tmp中创建一个testpw文件夹 ...
- diff, cmp, patch
diff 以行为单位比较两个文件之间的差异,经常用来查看同一个文件的新旧版本的差异,通常用在文本文件的比较,可以使用重定向'>'制作补丁文档,通常以.patch结尾 \(diff [-bBi] ...
- diff和patch配合使用(转载备用)
Linux下diff与patch命令的配合使用 在Linux下,diff与patch命令配合使用可以进行简单的代码维护工作. [A] diffdiff命令用于比较文件的差异,可以用于制作patch文件 ...
- Linux中的版本控制---diff和patch命令
一.构造两个用于测试的文件 hello.txt: world.txt: 二.用diff命令比较两个文本文件的差异 对这个两个文本文件执行diff‘命令,并通过输出重定向,将差异保存在diff.txt文 ...
- Linux下Diff命令
一般正常比较两个文件用vimdiff,算是直接进入vim界面,如果比较两个文件夹下面的文件,可以用diff,注意,这里只会比较文件夹下面的同名文件,他会列出不一样的点. 参考Linux下Diff命令使 ...
- Linux中的Diff和Patch
本文主要记录两个命令的学习情况:diff 和 patch.diff 和 patch 是一对工具,使用这对工具可以获取更新文件与历史文件的差异,并将更新应用到历史文件上.在数学上说,diff就是对两个集 ...
随机推荐
- Nginx 反向代理504 Gateway Time-out
location /ssfwpt { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_ ...
- 去哪儿数据VS美团数据
介绍 之前在去哪儿做数据RD,今年来到美团做数据RD,碰巧都是门票方向(现在去哪儿叫度假,美团叫境内),下面都是基于这两个部门的对比 相同点 都有独立的数据团队,老大都重视数据,主要开发语言都是SQL ...
- Add Columns to the Web Sessions List
To add custom columns to the Web Sessions List, add rules using FiddlerScript. The BindUIColumn Attr ...
- Java虚拟机垃圾回收:内存分配与回收策略 方法区垃圾回收 以及 JVM垃圾回收的调优方法
在<Java对象在Java虚拟机中的创建过程>了解到对象创建的内存分配,在<Java内存区域 JVM运行时数据区>中了解到各数据区有些什么特点.以及相关参数的调整,在<J ...
- 单片机成长之路(51基础篇) - 012 MCS-51单片机控制详解–TMOD T2MOD
TMOD:工作方式控制寄存器 寄存器地址89H,不可位寻址. 位序 B7 B6 B5 B4 B3 B2 B1 B0 位符号 GATE C/T M1 M0 GATE C/T M1 M0 GATE——门控 ...
- EF+LINQ事物处理 C# 使用NLog记录日志入门操作 ASP.NET MVC多语言 仿微软网站效果(转) 详解C#特性和反射(一) c# API接受图片文件以Base64格式上传图片 .NET读取json数据并绑定到对象
EF+LINQ事物处理 在使用EF的情况下,怎么进行事务的处理,来减少数据操作时的失误,比如重复插入数据等等这些问题,这都是经常会遇到的一些问题 但是如果是我有多个站点,然后存在同类型的角色去操作 ...
- 在 Windows 8、Windows 10 桌面模式下的 .NET Framework 程序中,引用 Windows.Runtime 的 API。
参考:1.https://www.cnblogs.com/webtojs/p/9675956.html 2.http://jennal.com/2016/04/28/using-windows-run ...
- 【Java】Java8的Lambda入门记录
简化定义匿名实现类 匿名实现类的传统方式 创建一个线程,需要实现Runnable接口,并实现public void run()方法,用传统的方式是这样的: public static void mai ...
- sfc /scannow命令如何能用虚拟光驱完成修复?(xp下的办法)
我们先光盘文件或用WinRAR压缩软件将ISO文件解压缩到本地磁盘某目录下,如e:\winxp: 在ISO文件上右击,在弹出的菜单中选择“解压到”: 文件较多,久等一会解压完成后文件夹下有很多 ...
- halcon电路断裂检测
read_image (Image, 'pcb')dev_close_window ()get_image_size (Image, Width, Height)dev_open_window (0, ...