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

2021-07-28 08:39:52 字數 1569 閱讀 2345

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

1.製作補丁:

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

[yangni@yangni mypatch]$ touch a b

[yangni@yangni mypatch]$ ls

內容分別為:
[yangni@yangni mypatch]$ cat a

1234567

hello

[yangni@yangni mypatch]$ cat b

1234567

abcdefg

製作補丁命令:patch -nuar  版本1 版本2  > ***.patch

[yangni@yangni mypatch]$ diff -nuar a b > c.patch

[yangni@yangni mypatch]$ lsa b c.patch[yangni@yangni mypatch]$ cat^c[yangni@yangni 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

解除安裝補丁:  patch -p0 -r 

[yangni@yangni mypatch]$ cat a1234567

hello[yangni@yangni 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

[yangni@yangni mypatch]$ patch -p0

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

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

出現如下問題:

1、[yangni@yangni patch]$  patch -p0

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

stripping trailing crs from patch

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

Linux下使用diff和patch製作及打補丁

diff 是對兩個集合的差運算 patch 是對兩個集合的和運算 diff a b c表達了c a b a 表達了原始檔案,b 表示修改後的檔案。c 表示補丁檔案 由於歷史原因,diff有三種格式 正常格式 normal diff 上下文格式 context diff 合併格式 unified di...

Linux下patch和diff的用法介紹

1 7z安裝 如果ubuntu中沒有安裝7z軟體,則可通過下列命令進行安裝 sudo apt get install p7zip p7zip full p7zip rar 2 7z解壓 一般而言推薦選用 7z x 壓縮檔案 7z來解壓,因為其是將壓縮檔案解壓到壓縮包命名的目錄下,即解壓到當前資料夾。...

linux下Diff命令使用方法

1 diff命令的功能 linux中diff命令的功能為逐行比較兩個文字檔案,列出其不同之處。它對給出的檔案進行系統的檢查,並顯示出兩個檔案中所有不同的行,不要求事先對檔案進行排序。2 語法 diff options file1 file2 該命令告訴使用者,為了使兩個檔案file1和file2一致...