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的更多相关文章

  1. Linux命令——diff、patch

    简介 diff以行为单位比较不同ASCII文件差异,可以输出一组指令,用于指导如何更改一个文件使其与第二个文件相同.diff在软件开发时多用于比较新旧版本代码,和patch连用可以将文件间区别做成补丁 ...

  2. Linux下diff与patch命令的配合使用

    在Linux下,diff与patch命令配合使用可以进行简单的代码维护工作. [A] diff diff命令用于比较文件的差异,可以用于制作patch文件.但此命令参数众多.格式多样,所以在此仅介绍较 ...

  3. linux命令-diff对比文件工具

    diff 命令是 linux上非常重要的工具,用于比较文件的内容,特别是比较两个版本不同的文件以找到改动的地方.diff在命令行中打印每一个行的改动.最新版本的diff还支持二进制文件.diff程序的 ...

  4. 文件对比工具 diff cmp patch(没弄完) pr

    diff不仅可以对比文件,而且可以对比文件夹中的文件. 解析: diff用在比对两个文件的差异,并且是以行为单位进行对比.一般用在ascii纯文本档的对比上. 例 在tmp中创建一个testpw文件夹 ...

  5. diff, cmp, patch

    diff 以行为单位比较两个文件之间的差异,经常用来查看同一个文件的新旧版本的差异,通常用在文本文件的比较,可以使用重定向'>'制作补丁文档,通常以.patch结尾 \(diff [-bBi] ...

  6. diff和patch配合使用(转载备用)

    Linux下diff与patch命令的配合使用 在Linux下,diff与patch命令配合使用可以进行简单的代码维护工作. [A] diffdiff命令用于比较文件的差异,可以用于制作patch文件 ...

  7. Linux中的版本控制---diff和patch命令

    一.构造两个用于测试的文件 hello.txt: world.txt: 二.用diff命令比较两个文本文件的差异 对这个两个文本文件执行diff‘命令,并通过输出重定向,将差异保存在diff.txt文 ...

  8. Linux下Diff命令

    一般正常比较两个文件用vimdiff,算是直接进入vim界面,如果比较两个文件夹下面的文件,可以用diff,注意,这里只会比较文件夹下面的同名文件,他会列出不一样的点. 参考Linux下Diff命令使 ...

  9. Linux中的Diff和Patch

    本文主要记录两个命令的学习情况:diff 和 patch.diff 和 patch 是一对工具,使用这对工具可以获取更新文件与历史文件的差异,并将更新应用到历史文件上.在数学上说,diff就是对两个集 ...

随机推荐

  1. Nginx 反向代理504 Gateway Time-out

    location /ssfwpt { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_ ...

  2. 去哪儿数据VS美团数据

    介绍 之前在去哪儿做数据RD,今年来到美团做数据RD,碰巧都是门票方向(现在去哪儿叫度假,美团叫境内),下面都是基于这两个部门的对比 相同点 都有独立的数据团队,老大都重视数据,主要开发语言都是SQL ...

  3. Add Columns to the Web Sessions List

    To add custom columns to the Web Sessions List, add rules using FiddlerScript. The BindUIColumn Attr ...

  4. Java虚拟机垃圾回收:内存分配与回收策略 方法区垃圾回收 以及 JVM垃圾回收的调优方法

    在<Java对象在Java虚拟机中的创建过程>了解到对象创建的内存分配,在<Java内存区域 JVM运行时数据区>中了解到各数据区有些什么特点.以及相关参数的调整,在<J ...

  5. 单片机成长之路(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——门控 ...

  6. EF+LINQ事物处理 C# 使用NLog记录日志入门操作 ASP.NET MVC多语言 仿微软网站效果(转) 详解C#特性和反射(一) c# API接受图片文件以Base64格式上传图片 .NET读取json数据并绑定到对象

    EF+LINQ事物处理   在使用EF的情况下,怎么进行事务的处理,来减少数据操作时的失误,比如重复插入数据等等这些问题,这都是经常会遇到的一些问题 但是如果是我有多个站点,然后存在同类型的角色去操作 ...

  7. 在 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 ...

  8. 【Java】Java8的Lambda入门记录

    简化定义匿名实现类 匿名实现类的传统方式 创建一个线程,需要实现Runnable接口,并实现public void run()方法,用传统的方式是这样的: public static void mai ...

  9. sfc /scannow命令如何能用虚拟光驱完成修复?(xp下的办法)

    我们先光盘文件或用WinRAR压缩软件将ISO文件解压缩到本地磁盘某目录下,如e:\winxp:   在ISO文件上右击,在弹出的菜单中选择“解压到”:   文件较多,久等一会解压完成后文件夹下有很多 ...

  10. halcon电路断裂检测

    read_image (Image, 'pcb')dev_close_window ()get_image_size (Image, Width, Height)dev_open_window (0, ...