Linux patch命令详解 Linux patch命令怎么用

patch指令让用户利用设置修补文件的方式,修改,更新原始文件。倘若一次仅修改一个文件,可直接在指令列中下达指令依序执行。如果配合修补文件的方式则能一次修补大批文件,这也是Linux系统核心的升级方法之一。

语法

patch [-bceEflnNRstTuvZ][-B <备份字首字符串>][-d <工作目录>][-D <标示符号>]
[-F <监别列数>][-g <控制数值>][-i <修补文件>][-o <输出文件>][-p <剥离层级>]
[-r <拒绝文件>][-V <备份方式>][-Y <备份字首字符串>][-z <备份字尾字符串>]
[--backup-if -mismatch][--binary][--help][--nobackup-if-mismatch][--verbose]
[原始文件 <修补文件>] 或 path [-p <剥离层级>] < [修补文件]

参数

  • -b或--backup 备份每一个原始文件。
  • -B<备份字首字符串>或--prefix=<备份字首字符串> 设置文件备份时,附加在文件名称前面的字首字符串,该字符串可以是路径名称。
  • -c或--context把修补数据解译成关联性的差异。
  • -d<工作目录>或--directory=<工作目录> 设置工作目录。
  • -D<标示符号>或--ifdef=<标示符号> 用指定的符号把改变的地方标示出来。
  • -e或--ed 把修补数据解译成ed指令可用的叙述文件。
  • -E或--remove-empty-files 若修补过后输出的文件其内容是一片空白,则移除该文件。
  • -f或--force 此参数的效果和指定"-t"参数类似,但会假设修补数据的版本为新版本。
  • -F<监别列数>或--fuzz<监别列数> 设置监别列数的最大值。
  • -g<控制数值>或--get=<控制数值> 设置以RSC或SCCS控制修补作业。
  • -i<修补文件>或--input=<修补文件> 读取指定的修补问家你。
  • -l或--ignore-whitespace 忽略修补数据与输入数据的跳格,空格字符。
  • -n或--normal 把修补数据解译成一般性的差异。
  • -N或--forward 忽略修补的数据较原始文件的版本更旧,或该版本的修补数据已使用过。
  • -o<输出文件>或--output=<输出文件> 设置输出文件的名称,修补过的文件会以该名称存放。
  • -p<剥离层级>或--strip=<剥离层级> 设置欲剥离几层路径名称。
  • -f<拒绝文件>或--reject-file=<拒绝文件> 设置保存拒绝修补相关信息的文件名称,预设的文件名称为.rej。
  • -R或--reverse 假设修补数据是由新旧文件交换位置而产生。
  • -s或--quiet或--silent 不显示指令执行过程,除非发生错误。
  • -t或--batch 自动略过错误,不询问任何问题。
  • -T或--set-time 此参数的效果和指定"-Z"参数类似,但以本地时间为主。
  • -u或--unified 把修补数据解译成一致化的差异。
  • -v或--version 显示版本信息。
  • -V<备份方式>或--version-control=<备份方式> 用"-b"参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,这个字符串不仅可用"-z"参数变更,当使用"-V"参数指定不同备份方式时,也会产生不同字尾的备份字符串。
  • -Y<备份字首字符串>或--basename-prefix=--<备份字首字符串> 设置文件备份时,附加在文件基本名称开头的字首字符串。
  • -z<备份字尾字符串>或--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 详细显示指令的执行过程。

实例

使用patch指令将文件"testfile1"升级,其升级补丁文件为"testfile.patch",输入如下命令:

$ patch -p0 testfile1 testfile.patch    #使用补丁程序升级文件

使用该命令前,可以先使用指令"cat"查看"testfile1"的内容。在需要修改升级的文件与原文件之间使用指令"diff"比较可以生成补丁文件。具体操作如下所示:

$ cat testfile1                 #查看testfile1的内容  
Hello,This is the firstfile!  
$ cat testfile2                 #查看testfile2的内容  
Hello,Thisisthesecondfile!  
$ diff testfile1 testfile2          #比较两个文件  
1c1  
<Hello,Thisisthefirstfile!  
---  
>Hello,Thisisthesecondfile!  
#将比较结果保存到tetsfile.patch文件  
$ diff testfile1 testfile2>testfile.patch     
$ cat testfile.patch                #查看补丁包的内容  
1c1  
<Hello,Thisisthefirstfile!  
---  
>Hello,Thisisthesecondfile!  
#使用补丁包升级testfile1文件  
$ patch -p0 testfile1 testfile.patch      
patching file testfile1  
$cat testfile1                  #再次查看testfile1的内容  
#testfile1文件被修改为与testfile2一样的内容  
Hello,This is the secondfile!

注意:上述命令代码中,"$ diff testfile1 testfile2>testfile. patch"所使用的操作符">"表示将该操作符左边的文件数据写入到右边所指向的文件中。在这里,即是指将两个文件比较后的结果写入到文件"testfile.patch"中。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索文件
, 代码
配合
linux patch命令、linux打patch命令、linux patch命令安装、linux top命令详解、linux ps 命令详解,以便于您获取更多的相关知识。

时间: 2024-09-30 16:13:28

Linux patch命令详解 Linux patch命令怎么用的相关文章

Linux cd命令详解 Linux cd命令怎么用

其中 dirName 表示法可为绝对路径或相对路径.若目录名称省略,则变换至使用者的 home 目录 (也就是刚 login 时所在的目录). 另外,"~" 也表示为 home 目录 的意思,"." 则是表示目前所在的目录,".." 则表示目前目录位置的上一层目录. 语法 cd [dirName] dirName:要切换的目标目录. 实例 跳到 /usr/bin/ : cd /usr/bin 跳到自己的 home 目录 : cd ~ 跳到目前目录

Linux ftp命令详解 Linux ftp命令怎么用

FTP是ARPANet的标准文件传输协议,该网络就是现今Internet的前身. 语法 ftp [-dignv][主机名称或IP地址] 参数: -d 详细显示指令执行过程,便于排错或分析程序执行的情形. -i 关闭互动模式,不询问任何问题. -g 关闭本地主机文件名称支持特殊字符的扩充特性. -n 不使用自动登陆. -v 显示指令执行过程. 实例 例如使用ftp命令匿名登录ftp.kernel.org服务器,该服务是Linux 内核的官方服务器,可以使用如下命令: ftp ftp.kernel.

Linux zipinfo命令详解 Linux zipinfo命令怎么用

pnux zipinfo命令用于列出压缩文件信息,执行zipinfo指令可得知zip压缩文件的详细信息. 语法 zipinfo [-12hlmMstTvz][压缩文件][文件...][-x <范本样式>] 参数: -1 只列出文件名称. -2 此参数的效果和指定"-1"参数类似,但可搭配"-h","-t"和"-z"参数使用. -h 只列出压缩文件的文件名称. -l 此参数的效果和指定"-m"参数

Linux rm命令详解 Linux rm命令怎么用

Linux rm命令用于删除一个文件或者目录. 语法 rm [options] name... 参数: -i 删除前逐一询问确认. -f 即使原档案属性设为唯读,亦直接删除,无需逐一确认. -r 将目录及以下之档案亦逐一删除. 实例 删除文件可以直接使用rm命令,若删除目录则必须配合选项"-r",例如: # rm  test.txt  rm:是否删除 一般文件 "test.txt"? y   # rm  homework   rm: 无法删除目录"home

Linux touch命令详解 Linux touch命令怎么用

Linux touch命令用于修改文件或者目录的时间属性,包括存取时间和更改时间.若文件不存在,系统会建立一个新的文件. ls -l 可以显示档案的时间记录. 语法 touch [-acfm][-d<日期时间>][-r<参考文件或目录>] [-t<日期时间>][--help] [--version][文件或目录-] 参数说明: a 改变档案的读取时间记录. m 改变档案的修改时间记录. c 假如目的档案不存在,不会建立新的档案.与 --no-create 的效果一样.

Linux cp命令详解 Linux cp命令怎么用

Linux cp命令主要用于复制文件或目录. 语法 cp [options] source dest 或 cp [options] source... directory 参数说明: -a:此选项通常在复制目录时使用,它保留链接.文件属性,并复制目录下的所有内容.其作用等于dpR参数组合. -d:复制时保留链接.这里所说的链接相当于Windows系统中的快捷方式. -f:覆盖已经存在的目标文件而不给出提示. -i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y&quo

Linux more命令详解 Linux more命令怎么用

more最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似),使用中的说明文件,请按 h .  语法 more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..] 参数: -num 一次显示的行数 -d 提示使用者,在画面下方显示 [Press space to continue, 'q' to quit.] ,如果使用者按错键,则会显示 [Press 'h

Linux zip命令详解 Linux zip命令怎么用

zip是个使用广泛的压缩程序,文件经它压缩后会另外产生具有".zip"扩展名的压缩文件. 语法 zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b <工作目录>][-ll][-n <字尾字符串>][-t <日期时间>][-<压缩效率>][压缩文件][文件...][-i <范本样式>][-x <范本样式>] 参数: -A 调整可执行的自动解压缩文件. -b<工作目录> 指定暂时存放

Linux dumpkeys命令详解 Linux dumpkeys命令怎么用

Linux dumpkeys命令用于显示键盘映射表,输出的内容可以被loadkeys命令识别,改变映射关系. 语法 dumpkey[选择参数] 参数说明: -i 驱动信息(键码范围.数量.状态键) -l 详细驱动信息 -n 十六进制显示 -f 显示全部信息 -1 分行显示按键组合 -S 设定输出格式(0:预设 1:完整 2:分行 3简单) --funcs-only 功能键信息 --keys-only 键组合信息 --compose-only 普通键信息 实例 显示功能键信息 # dumpkeys

Linux mv命令详解 Linux mv命令怎么用

语法 mv [options] source dest mv [options] source... directory 参数说明: -i: 若指定目录已有同名文件,则先询问是否覆盖旧文件; -f: 在mv操作要覆盖某已有的目标文件时不给任何指示; mv参数设置与运行结果 命令格式 运行结果 mv  文件名   文件名 将源文件名改为目标文件名 mv  文件名   目录名 将文件移动到目标目录 mv  目录名   目录名 目标目录已存在,将源目录移动到目标目录:目标目录不存在则改名 mv  目录