• patch的用法【转】


    什么是patch

    patch即补丁之意,记录文件中的不同,能够与文件进行整合,从而改变文件中的内容

    如何制作patch

    在Linux系统中提供了diff程序,可以使用diff程序,比较文件之间的不同从而制作出patch文件

    1. 在系统中(我用的是Ubuntu)创建diff文件夹,创建test1.txt,test2.txt
    mkdir diff
    vi test1.txt
    vi test2.txt

    test1.txt文件内容如下

    aaaa

    test2.txt文件内容如下

    aaaa
    bbbb
    1. 使用diff命令制作patch文件
    diff -Naur test1.txt test2.txt > test.patch

    之后在当前目录中会存在三个文件

    test1.txt test2.txt test.patch

    test.patch 文件的内容

    --- test1.txt   2018-08-01 13:17:33.530350672 +0800
    +++ test2.txt   2018-08-01 13:18:54.326350260 +0800
    @@ -1 +1,2 @@ 
     aaaa
    +bbbb

    diff参数解释
    -N 在比较目录时如果某个文件只出现了一次,那么在比较不同时会默认和空文件比较
    -a 将所有的文件都作为普通text(之比较文本文件)
    -u 以合并的方式显示文件内容的不同
    -r 如果是文件夹则进行递归进行比较

    如何使用patch

    1. 准备好patch文件和原版本文件
      创建patch文件夹,将test1.txt 和test.patch文件拷贝进去
    mkdir patch
    cp test1.txt test.patch../patch/
    1. 执行patch命令
    patch -p0 < test.patch

    test1.txt文件内容如下

    aaa
    bbb

    可以看到patch已经打进去了
    参数介绍
    patch命令中最常用的就是-pX这个参数
    在上面我们注意到patch文件如下内容

    --- test1.txt   2018-08-01 13:17:33.530350672 +0800

    此时我们的参数为-p0,此时patch 就会在当前目录下寻找test1.txt文件,如在在patch文件中是这样记录的

    ---a/b/test1.txt   2018-08-01 13:17:33.530350672 +0800

    那么-p0会在当前目录下寻找a目录,a目录下寻找b,之后在b中寻找test1.txt文件。
    如果是 -p1,patch命令就会舍弃a,先寻找b再寻找test1.txt
    如果是-p2 ,会舍弃a/b,直接寻找test1.txt
    所以-pX中 X代表就是所要舍弃的层级目录
    patch还有很多参数,但是-pX是最为常用的

    patch的应用场景

    patch多用于系统升级,只要有一个基础版本,以及基于这个版本的一些patch,就可以进行升级

    转自

    patch -p0 和patch -p1的區別 | 學步園 https://www.xuebuyuan.com/zh-hant/1166329.html

    patch的学习和使用 - 简书 https://www.jianshu.com/p/1df286850317

    patch命令用法 - 车子(chezi) - CSDN博客 https://blog.csdn.net/longintchar/article/details/74151042

  • 相关阅读:
    2019.8.15刷题统计
    2019.8.12刷题统计
    2019.8.11刷题统计
    2019.8.10刷题统计
    2019.8.9刷题统计
    2019.8.8刷题统计
    2019.8.7刷题统计
    2019.8.6刷题统计
    xuezhan.org 6.28
    xuezhan.org 6.27
  • 原文地址:https://www.cnblogs.com/paul8339/p/11598782.html
Copyright © 2020-2023  润新知