1.  diff是对两个集合的差运算,patch是对两个集合的和运算。

2.  diff以逐行的方式,比较文本文件的异同处。所是指定要比较目录,则diff会比较目录中相同文件名的文件,但不会比较其中子目录,如果我们希望递归执行,需要使用-r参数。

**diff

-b :忽略一行当中,仅有多个空白的差异(例如 "about me" 于 "about    me"视为相同。
-B :忽略空白行的差异。
-i :忽略大小写的不同

[root@www test]# diff passwd.old passwd.new
4d3 <==左边第四行被删除 (d) 掉了,基准是右边癿第三行
< adm:x:::adm:/var/adm:/sbin/nologin <==这边列出左边(<)档案被删除
癿那一行内容
6c5 <==左边档案的第六行被取代 (c) 成右边档案的第五行
< sync:x:::sync:/sbin:/bin/sync <==左边(<)档案第六行内容
---
> no six line <==右边(>)档案第五行内容  

其他模式还有"增加"(a,代表 addition),如4a4。

**patch

diff是用来分变两个版本之间的差异,要将旧的档案升级成新的档案需要;

先比较新旧版本的差异,并将差异制作成补丁档,再由补丁档更新旧档案

  • 建立patch文件
  • 范例一:以 /tmp/test 内癿 passwd.old 不 passwd.new 制作补丁档案
    [root@www test]# diff -Naur passwd.old passwd.new > passwd.patch
    [root@www test]# cat passwd.patch
    --- passwd.old -- ::09.000000000 + <==新旧档案癿信

    +++ passwd.new -- ::18.000000000 +
    @@ -, +, @@ <==新旧档案要修改数据癿界定范围,旧档在 - 行,新
    檔在 - 行
    root:x:::root:/root:/bin/bash
    bin:x:::bin:/bin:/sbin/nologin
    daemon:x:::daemon:/sbin:/sbin/nologin
    -adm:x:::adm:/var/adm:/sbin/nologin <==左侧档案删除
    lp:x:::lp:/var/spool/lpd:/sbin/nologin
    -sync:x:::sync:/sbin:/bin/sync <==左侧档案删除
    +no six line <==右侧新档加入
    shutdown:x:::shutdown:/sbin:/sbin/shutdown
    halt:x:::halt:/sbin:/sbin/halt
    mail:x:::mail:/var/spool/mail:/sbin/nologin
  • 更新与还原
    [root@www ~]# patch -pN < patch_file <==更新
    [root@www ~]# patch -R -pN < patch_file <==还原
    选项不参数:
    -p :后面可以接『取消几层目彔』的意思。
    -R :代表还原,将新的文件还原成原本的版本。
    范例二:将刚刚制作出来的 patch file 用来更新旧版数据
    [root@www test]# patch -p0 < passwd.patch
    patching file passwd.old
    [root@www test]# ll passwd*
    -rw-r--r-- root root Feb : passwd.new
    -rw-r--r-- root root Feb : passwd.old <==档案一模一样!
    范例三:恢复旧档案内容
    [root@www test]# patch -R -p0 < passwd.patch
    [root@www test]# ll passwd*
    -rw-r--r-- root root Feb : passwd.new
    -rw-r--r-- root root Feb : passwd.old
    # 档案就这样恢复成为旧版本啰

diff和patch命令(1)的更多相关文章

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

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

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

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

  3. grep,cut,wc,sort,diff,uniq,patch命令

    文本处理工具: Linux上文本处理三剑客: grep,egrep,fgrep: 文本过滤工具(模式: pattern)工具; grep:基本正则表达式,-E,-F egrep:扩展正则表达式,-G, ...

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

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

  5. diff命令和patch命令

    diff命令和patch命令 Linux就这个范儿 2.9.5 文件对比命令——diff diff命令搭建网站离不开数据库,在Linux系统上我们使用源码安装了MySQL服务器.不久我们发现 Goog ...

  6. Linux-学习patch命令打补丁,diff命令制作补丁(3)

    patch:通过补丁文件,来对原文件打补丁 diff:      比较两个文件,然后生成一个补丁文件 1.patch用法    patch -p[剥离层级]  <[补丁文件] 2.patch命令 ...

  7. sort、uniq 、 join 、 comm、diff 、 patch 、df、du 和 time 命令的用法

    1 sort 命令 同文本文件打交道时,总避不开排序,那是因为对于文本处理任务而言,排序(sort)可以起到不小的作用.sort 命令能够帮助我们对文本文件和 stdin 进行排序操作.通常,它会结合 ...

  8. diff和patch的使用、patch文件的格式解说

    为了弄懂 patch中的 p0   p1    和.orig文件是啥,找到了这篇文章! 来源:http://www.cnblogs.com/super119/archive/2010/12/18/19 ...

  9. svn/git的diff、patch

    svn/git的diff.patch 前几天,正当我突突的写代码,企业微信嘀嘀一声响”在不,过来帮我看个bug”.本人一向助人为乐,高兴的冲了过去,然后就开始了一段长达1分钟的问题描述.很明显,此同学 ...

随机推荐

  1. naturalWidth 与 naturalHeight

    在HTML 5中,新增加了两个用来判断图片的宽度和高度的属性(图片原始大小),分别为 naturalWidth 和naturalHeight属性,例子如下: 注意问题: - 图片没有加载的时候 值为0 ...

  2. 初入python 用户输入,if,(while 循环)

    python 基础 编译型: 一次性将所有程序编译成二进制文件. 缺点:开发效率低,不能跨平台 优点:运行速度快. :c ,c++语言 等等.... 解释行:当程序执行时,一行一行的解释. 优点:开发 ...

  3. BZOJ1294: [SCOI2009]围豆豆Bean

    题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1294 状压dp,dis[s][i][j]表示从(i,j)出发围的状态是s的最短路. 然后判断一 ...

  4. i++是否原子操作?并解释为什么?

    都不是原子操作.理由: 1.i++分为三个阶段: 内存到寄存器寄存器自增写回内存这三个阶段中间都可以被中断分离开.  2.++i首先要看编译器是怎么编译的, 某些编译器比如VC在非优化版本中会编译为以 ...

  5. cesium编程入门(六)添加 3D Tiles,并调整位置,贴地

    添加 3D Tiles,并调整位置 3D Tiles 是什么 3DTiles数据集是cesium小组AnalyticlGraphics与2016年3月定义的一种数据集,3DTiles数据集以分块.分级 ...

  6. Android开发——BroadcastReceiver广播的使用

    想要了解广播定义及相关原理的可以看下这一篇BroadcastReceiver史上最全面解析 简单地对广播进行分类吧,广播有两个角色,一个是广播发送者,另外一个是广播接收者 广播按照类型分为两种,一种是 ...

  7. UE4 TSubclassOf VS Native Pointer

    最近看到了TSubclassOf ,所以想要弄清楚跟一般指针的区别~ NativePointer    VS     UClass*      VS     TSubclassOf AActor* p ...

  8. UE4 内容示例网络同步Learn

    一, 1.1 Actor的复制 Actor中的Replicates ,为true时,服务器会把该Actor同步,显示在客户端中. 1.2 Switch Has Authority判断是客户端还是服务器 ...

  9. 如何查看dede版本信息

    dedecms版本信息 更新日期 it 分类: dedecms 打开 /include/common.inc.php 查找 $cfg_version 可以看到版本号 /打开 data/admin/ve ...

  10. ios开发 第三天

    1.复合 对象可以引用其它对象,可以利用其它对象提供的特性. 通过包含作为实例变量的对象指针实现的. 2.OC是单一继承 3.继承-重构 4.类实例化对象时,self指向了对象的首地址. 类对象isa ...