linux系統(tǒng)補(bǔ)丁工具patchanddiff

linux系統(tǒng)補(bǔ)丁工具patchanddiff

ID:43033164

大?。?4.50 KB

頁(yè)數(shù):3頁(yè)

時(shí)間:2019-09-26

linux系統(tǒng)補(bǔ)丁工具patchanddiff_第1頁(yè)
linux系統(tǒng)補(bǔ)丁工具patchanddiff_第2頁(yè)
linux系統(tǒng)補(bǔ)丁工具patchanddiff_第3頁(yè)
資源描述:

《linux系統(tǒng)補(bǔ)丁工具patchanddiff》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)

1、Linux系統(tǒng)補(bǔ)丁工具patchANDdiff一、工具概述:diff制作補(bǔ)丁的工具diff后而可以接兩個(gè)文件名或兩個(gè)目錄名生成補(bǔ)丁patch打補(bǔ)丁的工具Patch用途:根據(jù)原文件和補(bǔ)丁文件生成H標(biāo)文件在數(shù)學(xué)上來說,diff類似于對(duì)兩個(gè)集合的差運(yùn)算,patch類似于對(duì)兩個(gè)集合的和運(yùn)算。diff比較兩個(gè)文件或文件集合的差異,并記錄下來,生成一個(gè)diff文件,這也是我們常說的patch文件,即補(bǔ)丁文件。patch能將diff文件運(yùn)用于原來的兩個(gè)集合乙一,從而得到另一個(gè)集合。舉個(gè)例了來說文件A和文件B,經(jīng)過diff之后生

2、成了補(bǔ)丁文件C,那么這個(gè)過程相當(dāng)于IA-Bl=C,那么patch的過程就是B+C=A或A-C=B(A+C=B或者B-C=A)?因此我們只要能得到A,B,C三個(gè)文件中的任何兩個(gè),就能用diff和patch這對(duì)工具生成另外一個(gè)文件。這就是diff和patch的妙處。補(bǔ)丁Patch是天才程序員、Perl的發(fā)明者LarryWall發(fā)明的,它應(yīng)高效地交流程序源代碼之需求而生,隨著以Linux為代表的開發(fā)源代碼運(yùn)行的蓬勃發(fā)展,patch這個(gè)概念已經(jīng)成為開放源代碼發(fā)起者、貢獻(xiàn)者和參與者的集體無意識(shí)的一部分。patch只包含了對(duì)

3、源代碼修改的部分,這對(duì)于開放源代碼社區(qū)的協(xié)同開發(fā)模式具有重要意義,意味的軟件新版木的發(fā)布和對(duì)軟件的缺陷或改進(jìn)可以以更小的文件發(fā)布,可以減少網(wǎng)絡(luò)的傳輸量,方便軟件維護(hù)者的管理工作。patch文件有多種格式,不同平臺(tái)上所支持的格式不盡相同,但最常見的是context格式和unified格式。context格式被廣泛使用,是patch文件格式事實(shí)上的標(biāo)準(zhǔn)。該格式包含了差異部分及其鄰近的若干行,鄰近就是所謂的上下文,這些行雖然沒有變化,但它們出現(xiàn)在patch文件使得還原patch的程序具備更強(qiáng)的容錯(cuò)性。unified格式

4、常見于GNU的patch實(shí)現(xiàn),以patch形式發(fā)布的linux內(nèi)核就使用了該格式。此外,還有其它比佼少用的格式,如Normal格式,并排對(duì)比模式(side-by-side),edscript和RCSscript模式等。除了并排對(duì)比模式方便用戶觀察文件差異,其它格式人多數(shù)是為了兼容舊的patch格式。二、工具的用法1、diff的用法diff后面可以接兩個(gè)文件名或兩個(gè)目錄名生成補(bǔ)丁,例如:diff[option]oldfilenewfile如果是一個(gè)目錄名加一個(gè)文件名,那么只作用在那么個(gè)目錄卜的同名文件。例如:dif

5、f/usr/xumine把冃錄/usr/xu中名為mine的文件與當(dāng)前Fl錄中的mine文件進(jìn)行比較。Diff常用的option選項(xiàng)冇:1?r比較目錄時(shí),進(jìn)行遞歸比較,用于產(chǎn)生整個(gè)代碼樹的patchl-u輸出統(tǒng)一格式,diff有,,傳統(tǒng)”和”統(tǒng)一”兩種格式,現(xiàn)在一般使用”統(tǒng)一”格式,比較而言,統(tǒng)一格式牛成的文件大,但包含了更多的信息,有利于閱讀與定位1-N表示如果文件不存在則將其等價(jià)為空文件,這個(gè)用于產(chǎn)生有文件增加或刪除的patchl-a補(bǔ)丁中包含二進(jìn)制文件缺省時(shí),diff向標(biāo)準(zhǔn)輸出打印,所以一般都重定向到文件并

6、以patch為后綴,也就是所謂的補(bǔ)丁文件。關(guān)于二進(jìn)制文件的說明:binary文件可以原始方式存入patch文件。diff可以生成(加-a選項(xiàng)),patch也可以識(shí)別。如果覺得這樣的patch文件太難看,解決方法之一是用uuencode處理該binary文件。如果是兩個(gè)冃錄的話,作用于該冃錄下的所冇文件,不遞歸。如果我們希望遞歸執(zhí)行,需要使用?r參數(shù)。不加任何參數(shù)生成的diff文件格式是一種簡(jiǎn)單的格式,這種格式只標(biāo)出了不一樣的行數(shù)和內(nèi)容。我們需要一種更詳細(xì)的格式,可以標(biāo)識(shí)出不同之處的上下文環(huán)境,這樣更有利于提高pa

7、tch命令的識(shí)別能力。這個(gè)時(shí)候可以用-c開關(guān)。可以參考表1diff的命令行選項(xiàng)和參數(shù)。diff的命令行選項(xiàng)和參數(shù):-a將所冇的文件看作文木,既使文件看起來像是二進(jìn)制的也不例外,并且進(jìn)行逐行比較【二進(jìn)制文件必須加上這個(gè)參數(shù)】-b忽略塊中空白數(shù)bl的改變-B忽略插入或刪除空行造成的改變-c產(chǎn)生”上下文"(context)格式的輸出-C[num]產(chǎn)牛?”上下文^(context)格式的輸出,顯示塊詢后num行的內(nèi)容,如果不指定num的值,則顯示塊前后3行的內(nèi)容?H修改diff處理大文件的方式?i忽略大小寫-1regex

8、p忽略插入或刪除與正則表達(dá)式regexp匹配的行-1將輸出結(jié)果通過pr命令處理加上頁(yè)碼?p顯示出現(xiàn)塊的C函數(shù)?q只報(bào)告文件是否不同;不輸出差別汀比較目錄時(shí),進(jìn)行遞歸比較,用于產(chǎn)生整個(gè)代碼樹的patch-s報(bào)告兩個(gè)文件相同(默認(rèn)的行為是不報(bào)告相同的文件)-t輸出時(shí)tab擴(kuò)展為空白?u產(chǎn)生”統(tǒng)一氣unified)格式的輸III-U[num]產(chǎn)生”統(tǒng)一”(unified)格式的

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。