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,Thisisthesecondfile!   
   #将比较结果保存到tetsfile.patch文件   $ diff testfile1 testfile2>testfile.patch     $ cat testfile.patch                
   #查看补丁包的内容   1c1   
   
    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”中。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/203978.html<

(0)
运维的头像运维
上一篇2025-04-06 22:50
下一篇 2025-04-06 22:51

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注