類似 comm 命令,diff 命令被用來監測檔案之間的差異。然而,diff 是一款更加複雜的工具,它支援許多輸出格式,並且一次能處理許多文字檔案。軟體開發員經常使用 diff 程式來檢查不同程式原始碼版本之間的更改,diff 能夠遞迴地檢查原始碼目錄,通常稱之為原始碼樹。diff 程式的乙個常見用例是建立 diff 檔案或者補丁,它會被其它程式使用,例如 patch 程式(我們後面會講到),來把檔案從乙個版本轉換為另乙個版本。
diff 在命令列中列印每一行的改動,並且 diff 是 svn、cvs、git 等版本控制工具不可或缺的一部分。
diff 命令是 differential 的縮寫。
命令格式
diff [選項] 檔案
常用引數
引數 描述
-c 上下文模式,顯示全部內文,並標出不同之處
-u 統一模式,以合併的方式來顯示檔案內容的不同
-a 只會逐行比較文字檔案
-n 在比較目錄時,若檔案 a 僅出現在某個目錄中,缺省會顯示:only in 目錄。若使用 -n 引數,則 diff 會將檔案 a 與乙個空白的檔案比較
-r 遞迴比較目錄下的檔案
例一:顯示file1.txt和file2.txt兩個檔案的差異,可以使用如下命令:
diff file1.txt file2.txt
上面結果顯示中的「1d0」表示file1.txt檔案比file2.txt檔案多了第一行,「4c3,4」表示file1.txt檔案的第四行和file2.txt檔案的第
三、四行不同。
a - add
c - change
d - delete
例二:從上面例一的顯示結果可以知道,file1.txt和file2.txt兩個檔案的差異不易直**出,這時可以使用上下文模式顯示,可以使用如下命令:
diff -c file1.txt file2.txt
這個輸出結果以兩個檔名和它們的時間戳開頭。第乙個檔案用星號做標記,第二個檔案用短橫線做標記。縱觀列表的其它部分,這些標記將象徵它們各自代表的檔案。
*** 1,4 *** 表示第乙個檔案中第一行到第四行的文字行。 — 1,4 — 表示第二個檔案中第一行到第四行的文字行。
三種特殊字元:
這些特殊字元很容易混淆,實際上記住一點就行:所有操作目的是將第乙個檔案變成第二個檔案。
例三:檢視file1.txt和file2.txt兩個檔案的差異,使用統一模式顯示,可以使用如下命令:
diff -u file1.txt file2.txt
上下文模式和統一模式之間最顯著的差異就是重複上下文的消除,這就使得統一模式的輸出結果要比上下文模式的輸出結果簡短。
@@ -1,4 +1,4 @@表示在在更改組中描述的第乙個檔案中的文字行和第二個檔案中的文字行。
特殊字元:
+ 新增這一行到第乙個檔案中
- 在第乙個檔案中刪除這一行
linux作業系統基礎命令
gcc的知識要點 gcc的初衷是為gnu作業系統專門編寫的一款編譯器,gnu系統是徹底自由的軟體。gcc的基本用法 gcc hello world.c c,只編譯,不鏈結成為可執行檔案,編譯器只是由輸入的.c的源 檔案生成.o為字尾檔案的目標檔案,通常用於編譯不包括主程式的子程式。gcc hello...
linux作業系統命令基礎
常用指令 ls 顯示檔案或目錄 l 列出檔案詳細資訊l list a 列出當前目錄下所有檔案及目錄,包括隱藏的a all mkdir 建立目錄 p 建立目錄,若無父目錄,則建立p parent cd 切換目錄 touch 建立空檔案 echo 建立帶有內容的檔案。cat 檢視檔案內容 cp 拷貝 m...
Linux作業系統基礎命令
man help 利用方向鍵 快速調取歷史命令 ctrl a 將游標移動到行首 ctrl e 將游標移動到行尾 ctrl 將游標按照字串進行左右快速移動 ctrl u 將游標之前的內容進行剪下 ctrl k 將游標之後的內容進行剪下 ctrl w 以空格作為分隔 剪下每個字串資訊 ctrl y 將剪...