1. 程式人生 > >Linux下diff和patch命令以及簡單補丁

Linux下diff和patch命令以及簡單補丁

      補丁:就是對舊版本進行更新。在原有的版本下修改或者新增,減少內容。利用補丁,我們可以方便快捷的修改我們以前的版本。

1.製作補丁:

   先建立兩個檔案a,b ,假設b是a的新版本。   

[[email protected] mypatch]$ touch a b
[[email protected] mypatch]$ ls
內容分別為:
[[email protected] mypatch]$ cat a
1234567
hello
[[email protected] mypatch]$ cat b
1234567
abcdefg

製作補丁命令:patch -Nuar  版本1 版本2  > xxx.patch

[[email protected] mypatch]$ diff -Nuar a b > c.patch
[[email protected] mypatch]$ ls
a  b  c.patch
[[email protected] mypatch]$ cat 
^C
[[email protected] mypatch]$ cat c.patch 
--- a   2017-03-12 05:22:16.907677542 -0800
+++ b   2017-03-12 05:20:08.423677778 -0800
@@ -1,2 +1,2 @@
 1234567
-hello
+abcdefg

"+"表示新增的,"-"表示減少的內容

2.打補丁:  patch -p0 <xxx.patch

                 解除安裝補丁:  patch -p0 -R <xxx.patch

    注:舊版本檔案和patch檔案要放在同一個資料夾。

[[email protected] mypatch]$ cat a
1234567
hello
[[email protected] mypatch]$ cat c.patch 
--- a   2017-03-12 05:22:16.907677542 -0800
+++ b   2017-03-12 05:20:08.423677778 -0800
@@ -1,2 +1,2 @@
 1234567
-hello
+abcdefg
[
[email protected]
mypatch]$ patch -p0<c.patch patching file a [[email protected] mypatch]$ cat a 1234567 abcdefg

    可以看到,我們對a進行版本更新。patch除去了hello,增加了abcdefg,相當於所以a內容hello被替換。

    解除安裝a的補丁c.patch:patch -p0 -R <c.patch

出現如下問題:

   1、   [[email protected] patch]$  patch -p0 <u-boot-2010.09-fl2440.patch 

patching file u-boot-2010.09/arch/arm/cpu/arm920t/s3c24x0/speed.c
Reversed (or previously applied) patch detected!  Assume -R? [n] 

    表示已經打過這個補丁。要重新打補丁,需先解除安裝這個補丁。

  2、出現如下提示:

       Stripping trailing CRs from patch

如果你的patch是從windows下移到linux下,可以會出現相容性問題。


相關推薦

Linuxdiffpatch命令以及簡單補丁

      補丁:就是對舊版本進行更新。在原有的版本下修改或者新增,減少內容。利用補丁,我們可以方便快捷的修改我們以前的版本。 1.製作補丁:    先建立兩個檔案a,b ,假設b是a的新版本。    [[email protected] mypatch]$ t

Linux使用diffpatch製作及打補丁(已經實踐可行!)

簡單的說,diff的功能就是用來比較兩個檔案的不同,然後記錄下來,也就是所謂的diff補丁。語法格式:diff 【選項】 原始檔(夾)目的檔案(夾),就是要給原始檔(夾)打個補丁,使之變成目的檔案(夾),術語也就是“升級”。下面介紹三個最為常用選項: (adsbygoogle =

Linux命令學習:Linux中moreless命令以及查詢用法

** 一、more命令 ** more功能類似 cat ,cat命令是整個檔案的內容從上到下顯示在螢幕上。 more會以一頁一頁的顯示方便使用者逐頁閱讀,而最基本的指令就是按空白鍵(space)就往下一頁顯示,按 b 鍵就會往回(back)一頁顯示,而且還有搜尋字串的功能 。mo

[轉]Linux rz sz 命令的安裝與使用

目錄 Linux下 rz 和 sz 命令的安裝與使用 公司專案升級,看到運維使用sz命令將專案升級包上傳到伺服器,很是詫異,居然還有這種操作,因為我都是用的WinSCP這個軟體來完成對伺服器上的檔案進行上傳和下載功能的。回來自己搜了一下,發現是可以直接用命令來完

淺談Linuxmvcp命令的區別

我之前在專案中遇到一個很奇怪的問題,對於inotify監視一個檔案的時候,發現有些時候inotify有些時候會 “失效”。後來我就沒辦法,去監視檔案所在的目錄。看下面的, #!/bin/bash src=/tmp/test/test.txt # direc

Linux環境ffmpeg的配置步驟以及簡單的使用命令

資源連結:http://download.csdn.net/detail/hlj_include/9599667 第一步:建議安裝目錄:usr/local/目錄下 lame-3.99.5.tar.gz(1)、tar -zxvf lame-3.99.5.tar.gz (2)

LinuxACL權限控制以及用sudo設置用戶對命令的執行權限

以及 執行 nopasswd 設置 userdel file 指定 tool 必須 ACL權限分配 1.setfacl命令設置文件權限 setfacl -m u:user1:rw root.txt setfacl -m u:user2:rwx root.txt 2.getf

linux mii-tool ethtool 命令簡單的使用

linux下mii-tool ethtool 命令簡單的使用################################################################通過命令查看linux網卡的物理信息,狀態:[[email protected]/* */ ~]# mii-

LinuxDiff命令

普通 命令 圖形化 標準輸入 們的 sina 工具 文件 內容 一般正常比較兩個文件用vimdiff,算是直接進入vim界面,如果比較兩個文件夾下面的文件,可以用diff,註意,這裏只會比較文件夾下面的同名文件,他會列出不一樣的點. 參考Linux下Diff命令使用方法 d

Linux中的DiffPatch

manual bubuko 運算 tdi uid bash span 錯誤 aca 轉自:https://www.cnblogs.com/cocowool/p/6409643.html 本文主要記錄兩個命令的學習情況:diff 和 patch。di

Linuxat crontab的基本運用以及臨時檔案基本管理

一、at的基本運用 在終端輸入watch -n 1 ls -R /mnt/           //監控檔案每秒檢視一次並以第歸的方式列出來 使用at命令制定延時任務 

補丁linux中 的Diffpatch

diff和patch是一對工具,從數學上來講,diff是對兩個集合的差運算,patch是兩個集合的和運算。基本命令語法:patch [-R] {-p(n)} [--dry-run] < patch_file_name p:為path的縮寫。 n:指將patch

Linux檔案目錄操作命令大全

1、檢視目錄內容 ls 列表顯示目錄內容 萬用字元?單字元 含其一或段[a,b,c-d] *任意 ls -l長格式顯示檔案或目錄資訊 ls -a顯示所有包括隱藏的檔案或目錄 ls -h以K、M、G單位顯示檔案或目錄資訊 ls -d顯示目錄本身屬性資訊 2、建立目錄

LinuxMongodb安裝,命令列操作sql語句

--logappend --port=27017 --fork 5. 引數解釋: --dbpath 資料庫路徑(資料檔案)--logpath 日誌檔案路徑--master 指定為主機器--slave 指定為從機器--source 指定主機器的IP地址--pologSize 指定日誌檔案大小不超過64M.因為

Linux chmod chown 以及 chgrp用法區別

1、chgrp(轉變檔案所屬使用者組) chgrp 使用者組 檔名 ###便是這個格了。 若是整個目次下的都改,則加-R引數用於遞迴。 如:chgrp -R user smb.conf 2、chown(轉變檔案擁有者) 格局: A:chown 使用者名稱 檔案/目次 B:chown 使用者名

linux啟動關閉網絡卡命令

 ifup、ifdown:linux命令   實時地手動修改一些網路介面引數,可以利用ifconfig來實現,如果是要直接以配置檔案,亦即是在 /etc/sysconfig/network-scripts裡面的ifcfg-ethx等檔案的設定引數來啟動的話,那就得要通過i

轉:linux啟動關閉網絡卡命令

http://blog.sina.com.cn/s/blog_439f80c40101g54x.html 作者寫的很詳細。儲存下來,方便以後查詢,非常感謝  ifup、ifdown:linux命令  實時地手動修改一些網路介面引數,可以利用ifconfig來實現,如果是要直接以配置

linux的tar打包命令示例詳解

tar命令  [[email protected] ~]# tar [-cxtzjvfpPN] 檔案與目錄 …. 引數: -c :建立一個壓縮檔案的引數指令(create 的意思); -x :解開一個壓縮檔案的引數指令! -t :檢視 tarfile 裡面的

linuxredismongo常用命令

redis啟動 redis-server /etc/redis.conf redis管理員登陸  redis-cli -a 153539414 -p 40500 redis檢視基本資訊 redis-cli -a 153539414 -p 40500 info redi

Linux的bgfg命令簡單介紹

簡介Linux下,對於後臺掛起,後臺執行,調回前臺,檢視執行任務相關命令。 假設你發現前臺執行的一個程式需要很長的時間,但是需要幹其他的事情,你就可以用 Ctrl-Z ,掛起這個程式,然後可以