patch命令
时间:2022-07-24
本文章向大家介绍patch命令,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
patch命令
patch
指令让用户利用设置修补文件的方式、修改、更新原始文件,倘若一次仅修改一个文件,可直接在指令列中下达指令依序执行,如果配合修补文件的方式则能一次修补大批文件,这也是Linux
系统核心的升级方法之一。
语法
patch [OPTION]... [ORIGFILE [PATCHFILE]]
参数
-
-b, --backup
: 备份每一个原始文件。 -
-B<pref>, --prefix=<pref>
: 设置文件备份时,附加在文件名称前面的字首字符串,该字符串可以是路径名称。 -
-c, --context
: 把修补数据解译成关联性的差异。 -
-d<dir>, --directory=<dir>
: 设置工作目录。 -
-D<define>, --ifdef=<define>
: 用指定的符号把改变的地方标示出来。 -
-e, --ed
: 把修补数据解译成ed指令可用的叙述文件。 -
-E, --remove-empty-files
: 若修补过后输出的文件其内容是一片空白,则移除该文件。 -
-f, --force
: 此参数的效果和指定-t
参数类似,但会假设修补数据的版本为新版本。 -
-F<num >, --fuzz<num >
: 设置监别列数的最大值。 -
-g<num>, --get=<num>
: 设置以RSC
或SCCS
控制修补作业。 -
-i<patchfile>, --input=<patchfile>
: 读取指定的修补文件。 -
-l, --ignore-whitespace
: 忽略修补数据与输入数据的跳格,空格字符。 -
-n, --normal
: 把修补数据解译成一般性的差异。 -
-N, --forward
: 忽略修补的数据较原始文件的版本更旧,或该版本的修补数据已使 用过。 -
-o<outfile>, --output=<outfile>
: 设置输出文件的名称,修补过的文件会以该名称存放。 -
-p<num>, --strip=<num>
: 设置欲剥离几层路径名称。 -
-f<rejectfile>, --reject-file=<rejectfile>
: 设置保存拒绝修补相关信息的文件名称,预设的文件名称为.rej
。 -
-R, --reverse
: 假设修补数据是由新旧文件交换位置而产生。 -
-s, --quiet或--silent
: 不显示指令执行过程,除非发生错误。 -
-t, --batch
: 自动略过错误,不询问任何问题。 -
-T, --set-time
: 此参数的效果和指定-Z
参数类似,但以本地时间为主。 -
-u, --unified
: 把修补数据解译成一致化的差异。 -
-v, --version
: 显示版本信息。 -
-V<method>, --version-control=<method>
: 用-b
参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,这个字符串不仅可用-z
参数变更,当使用-V
参数指定不同备份方式时,也会产生不同字尾的备份字符串。 -
-Y<pref>, --basename-prefix=--<pref>
: 设置文件备份时,附加在文件基本名称开头的字首字符串。 -
-z<suffix>, --suffix=<suffix>
: 此参数的效果和指定-B
参数类似,差别在于修补作业使用的路径与文件名若为src/linux/fs/super.c
,加上backup/
字符串后,文件super.c
会备份于/src/linux/fs/backup
目录里。 -
-Z, --set-utc
: 把修补过的文件更改,存取时间设为UTC
。 -
--backup-if-mismatch
: 在修补数据不完全吻合,且没有刻意指定要备份文件时,才备份文件。 -
--binary
: 以二进制模式读写数据,而不通过标准输出设备。 -
--help
: 在线帮助。 -
--nobackup-if-mismatch
: 在修补数据不完全吻合,且没有刻意指定要备份文件时,不要备份文件。 -
--verbose
: 详细显示指令的执行过程。
示例
使用补丁包/tmp/file.patch
为文件/tmp/file2.txt
升级。
# diff /tmp/file2.txt /tmp/file3.txt > /tmp/file.patch # 生成补丁文件
patch /tmp/file2.txt /tmp/file.patch
每日一题
https://github.com/WindrunnerMax/EveryDay
参考
https://man.linuxde.net/patch https://www.runoob.com/linux/linux-comm-patch.html https://www.tutorialspoint.com/unix_commands/patch.htm
- Web安全实战
- 【翻译】MongoDB指南/聚合——聚合管道
- PHP异步高并发扩展Swoole
- TensorFlow从0到1丨 第五篇:TensorFlow轻松搞定线性回归
- 【直播】我的基因组59:把我的数据伪装成23andme或wegene的芯片数据
- asp.net web api客户端调用
- 细说WebSocket - Node篇
- TensorFlow从0到1丨 第六篇:解锁梯度下降算法
- .Net多线程编程—误用点分析
- Web开发常见的几个漏洞解决方法
- .Net多线程编程—同步机制
- .Net多线程编程—Parallel LINQ、线程池
- 没有自己的服务器如何学习生物数据分析(下篇)
- .Net多线程编程—并发集合
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- K8S 生态周报| Istio 已修复导致 Pod 崩溃的 bug
- Spark Kubernetes 的源码分析系列 - submit
- 如何交互可视化 Roam Research 局部笔记网络?
- Spark Kubernetes 的源码分析系列 - features
- Spark Kubernetes 的源码分析系列 - scheduler
- 简易Ramdisk 镜像制作(基于Centos7+)
- 在 K8S 部署一个 Spark History Server - 篇1
- R语言入门之非参数假设检验
- 在 K8S 部署一个 Spark History Server - 篇2
- UEFI/LEGACY 可启动ISO制作
- Kerberized HDFS with Kubernetes
- 经典 | Python实例小挑战—Part nine
- Mac CPU 相关
- 经典 | Python实例小挑战—Part ten
- 查看 Linux CPU 信息