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
- 1355: [Baltic2009]Radio Transmission
- Equation Group(方程式组织)
- Python中下划线---完全解读
- python常见模块之collections模块
- MYSQL之库操作
- 实战-如何获取安卓iOS上的微信聊天记录、通过Metasploit控制安卓
- lightswitch binding custom control
- 3339: Rmq Problem
- Codeforce GYM 100741 A. Queries
- UVA - 11178 Morley's Theorem
- PyMySQL模块的使用
- Python之进程
- Angularjs 通过asp.net web api认证登录
- P3391 【模板】文艺平衡树(Splay)
- 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 数组属性和方法
- VerticalBannerView仿淘宝头条实现垂直轮播广告
- ViewFlipper实现文字轮播效果
- Android自定义ViewFlipper实现滚动效果
- ViewFlipper实现上下翻滚轮播效果
- android实现长图加载效果
- 使用Thumbnails实现图片指定大小压缩
- Flutter中如何加载并预览本地的html文件的方法
- Android在自定义类中实现自定义监听器方式
- 解决WebView通过URL加载H5界面出现空白的问题
- kotlin 定义接口并实现回调的例子
- STL 总结与常见面试题
- kotlin中EditText赋值Type mismatch方式
- Kotlin 创建接口或者抽象类的匿名对象实例
- kotlin Context使用详解
- Android-ViewModel和LiveData使用详解