(1)、7z安裝
如果ubuntu中沒有安裝7z軟體,則可通過下列命令進行安裝:
sudo apt-get install p7zip p7zip-full p7zip-rar
(2)、7z解壓
一般而言推薦選用 7z x 《壓縮檔案》.7z來解壓,因為其是將壓縮檔案解壓到壓縮包命名的目錄下,即解壓到當前資料夾。
此外,還有7z e *.7z,其為將檔案解壓到當前路徑。
ps:7z a 《工程檔名》.7z 《工程檔名》為壓縮命令,將資料夾壓縮為7z檔案來便於傳輸。
diff [option] > ***.patch
(1)[option]選項介紹:
-a treat all files as text and compare them line-by-line, even if they do not seem to be text.
-n,--new-file
in directory comparison, if a file is found in
only one directory, treat it as present but empty
in the other directory.
-r when comparing directories, recursively compare any subdirectories found.
-u use the unified output format.
一般而言,如果資料夾中只有**檔案,則option選項可以選為-nur,但如果**資料夾裡面還有**檔案之類,則最好選擇-nura,這樣在使用patch命令打補丁的時候便可生成對應的**檔案。
當然,-nur與-nura生成的patch檔案的最大區別是-nura生成的檔案比較大。此外,這一介紹一些別的option選項:
-《行數》:指定要顯示多少行的文字。此引數必須與-c或-u引數一併使用;
-n或--new-file:在比較目錄時,若檔案a僅出現在某個目錄中,缺省會顯示:only in目錄,檔案a 若使用-n引數,則diff會將檔案a 與乙個空白的檔案比較;
-u,-u《列數》或--unified=《列數》:以合併的方式來顯示檔案內容的不同;
-r或——recursive:比較子目錄中的檔案;
-b或--ignore-space-change:不檢查空格字元的不同;
-b或--ignore-blank-lines:不檢查空白行;
-c:顯示全部內容,並標出不同之處;
-c《行數》或--context《行數》:與執行「-c-《行數》」指令相同;
-d或——minimal:使用不同的演演算法,以小的單位來做比較;
-d《巨集名稱》或ifdef《巨集名稱》:此引數的輸出格式可用於前置處理器巨集;
-e或——ed:此引數的輸出格式可用於ed的script檔案;
-f或-forward-ed:輸出的格式類似ed的script檔案,但按照原來檔案的順序來顯示不同處;
-h或--speed-large-files:比較大檔案時,可加快速度;
-l《字元或字串》或--ignore-matching-lines《字元或字串》:若兩個檔案在某幾行有所不同,而之際航同時都包含了選項中指定的字元或字串,則不顯示這兩個檔案的差異;
-i或--ignore-case:不檢查大小寫的不同;
-l或——paginate:將結果交由pr程式來分頁;
-n或——rcs:將比較結果以rcs的格式來顯示;
-p:若比較的檔案為c語言的程式碼檔案時,顯示差異所在的函式名稱;
-p或--unidirectional-new-file:與-n類似,但只有當第二個目錄包含了第乙個目錄所沒有的檔案時,才會將這個檔案與空白的檔案做比較;
-q或--brief:僅顯示有無差異,不顯示詳細的資訊;
-s或--report-identical-files:若沒有發現任何差異,仍然顯示資訊;
-s《檔案》或--starting-file《檔案》:在比較目錄時,從指定的檔案開始比較;
-t或--expand-tabs:在輸出時,將tab字元展開;
-t或--initial-tab:在每行前面加上tab字元以便對齊;
-v或——version:顯示版本資訊;
-w或--ignore-all-space:忽略全部的空格字元;
-w《寬度》或--width《寬度》:在使用-y引數時,指定欄寬;
-x《檔名或目錄》或--exclude《檔名或目錄》:不比較選項中所指定的檔案或目錄;
-x《檔案》或--exclude-from《檔案》;您可以將檔案或目錄型別存成文字檔案,然後在=《檔案》中指定此文字檔案;
-y或--side-by-side:以並列的方式顯示檔案的異同之處;
--help:顯示幫助;
--left-column:在使用-y引數時,若兩個檔案某一行內容相同,則僅在左側的字段顯示該行內容;
--suppress-common-lines:在使用-y引數時,僅顯示不同之處。
patch [ -b [ -b prefix ] ] [ -f ] [ -l ] [ -n ] [ -r ] [ -s ] [ -v ] [ -c | -e | -n ] [ -d directory ] [ -d define ] [ -f number ] [ -i patchfile ] [ -o outfile ][ -p number ] [ -r rejectfile ] [ -x number ] [ file ]
patch 命令失敗或拒絕接受補丁時,會產生乙個和原檔案同名,以".rej"為字尾的差異檔案。 當知道 -b 時,會產生乙個和原檔案同名,以".orig"為字尾的備份檔案。
常使用的 patch 引數:
-p 指定目錄級別(從路徑全稱中除去幾層目錄),如果補丁檔案包含路徑名稱 /1/2/3/4/5.c ,那麼:
-p 0 使用完整路徑名 -p 1 除去前導斜槓,留下 1/2/3/4/5.c。 -p 4 除去前導斜槓和前三個目錄,留下 4/5.c。
-d directory 打補丁前,更改當前目錄到指定目錄
-i patchfile 從指定檔案,而不是從標準輸入中讀取補丁資訊
-r 逆向補丁,可用來在打錯補丁後進行檔案的恢復
一般而言,補丁可能不止乙個版本,所以在打補丁的時候,需要注意該補丁之前幾個版本的,因為可能補丁需要一級一級地打,也可能可以直接打,這需要看補丁提供者的說明了。
一般而言,打補丁的檔案檔案是未經修改過的,否則會出錯。
(1)-- 製作補丁 命令:diff -urna linux-3.4.2 linux-3.4.2-my > linux-3.4.2.patch
說明:當前路徑為:./ 。
該路徑(./ )下有 linux-3.4.2 目錄,其是linux-3.4.2的原始碼壓縮包解壓所得(linux-3.4.2原始碼未做任何修改的)。
該路徑(./ )下有 linux-3.4.2-my 目錄,其是由linux-3.4.2的原始碼修改後,符合開發板正常使用的原始碼(根據linux-3.4.2原始碼修改後的)。
生成 linux-3.4.2.patch 補丁檔案。
(2)-- 打補丁
命令:patch -p1 < ../linux-3.4.2.patch
說明:當前路徑為:./linux-3.4.2,進入到未做任何修改的linux-3.4.2的目錄下執行patch命令
Linux下diff和patch命令以及簡單補丁
補丁 就是對舊版本進行更新。在原有的版本下修改或者新增,減少內容。利用補丁,我們可以方便快捷的修改我們以前的版本。1.製作補丁 先建立兩個檔案a,b 假設b是a的新版本。yangni yangni mypatch touch a b yangni yangni mypatch ls內容分別為 yan...
Linux下使用diff和patch製作及打補丁
diff 是對兩個集合的差運算 patch 是對兩個集合的和運算 diff a b c表達了c a b a 表達了原始檔案,b 表示修改後的檔案。c 表示補丁檔案 由於歷史原因,diff有三種格式 正常格式 normal diff 上下文格式 context diff 合併格式 unified di...
Linux下生成patch和打patch
通過diff工具生成補丁,patch工具打上補丁.在使用diff之前,你需要保留乙份未修改過的原始碼,然後在其它地方修改原始碼的乙份拷貝.diff對比這兩份原始碼生成patch.修改過的原始碼必須保留原來的檔名,例如,如果你修改原始碼中的a.c檔案,那麼,修改後的檔案還是名為a.c,在修改之前你可以...