如果兩個
二進制文件
相同,diff就什麼也不顯示,否則只簡單報告一下這兩個文件是不相同的。
diff命令的功能為逐行比較兩個文本文件,列出其不同之處。由於二進制文件沒有行結構,diff程序將不顯示所有的編輯行信息。
『貳』 shell 命令 diff 的使用簡介
diff 命令是 Linux 上比較重要的命令行工具,用於比較文本內容,並找到不相同的地方, diff 在命令行中列印每一行的改動之處。 diff 程序的輸出被稱為補丁( patch ),在 Linux 系統中還有一個 patch 程序,可以根據 diff 的輸出,將文件內容更新為另一個文件內容, diff 是版本控制工具不可或缺的一部分。
diff 命令能比較單個文件或者目錄內容。
如果指定比較的是文件,則只有當輸入為文本文件時才有效。以逐行的方式,比較文本文件的異同處。
如果指定比較的是目錄的的時候, diff 命令會比較兩個目錄下名字相同的文本文件。列出不同的二進制文件、公共子目錄和只在一個目錄出現的文件。
diff 的 normal 顯示格式有三種提示:
上面的 「3c3」 和 「8c8」 表示 log2014.log 和 log20143.log 文件在 3 行和第 8 行內容有所不同; "11,12d10" 表示第一個文件比第二個文件多了第 11 和 12 行。
「|」表示前後 2 個文件內容有不同
「<」表示後面文件比前面文件少了 1 行內容
「>」表示後面文件比前面文件多了 1 行內容
這種方式在開頭兩行作了比較文件的說明,這里有三中特殊字元:
「+」 比較的文件的後者比前著多一行
「-」 比較的文件的後者比前著少一行
「!」 比較的文件兩者有差別的行
它的第一部分,也是文件的基本信息:
--- log2014.log 2012-12-07 18:01:54.000000000 +0800
+++ log2013.log 2012-12-07 16:36:26.000000000 +0800
"---"表示變動前的文件,"+++"表示變動後的文件。
第二部分,變動的位置用兩個@作為起首和結束。
@@ -1,12 +1,10 @@
前面的 "-1,12" 分成三個部分:減號表示第一個文件(即 log2014.log ),"1"表示第 1 行,"12"表示連續 12 行。合在一起,就表示下面是第一個文件從第 1 行開始的連續 12 行。同樣的, "+1,10" 表示變動後,成為第二個文件從第 1 行開始的連續 10 行。
『叄』 linux diff命令詳解
diff命令在最簡單的情況下,比較給定的兩個文件的不同。如果使用「-」代替「文件」參數,則要比較的內容將來自標准輸入。diff命令是以逐行的方式,比較文本文件的異同處。如果該命令指定進行目錄的比較,則將會比較該目錄中具有相同文件名的文件,而不會對其子目錄文件進行任何比較操作。下面是linuxdiff命令的具體介紹:『肆』 linux diff命令顯示結果解析
104c104表示兩個文件都有此行,但該行有不同處
107d106表示前個文件有此行,後一文件沒有
111a111表示後個文件有此行,前一文件沒有
這里數字都是行數
『伍』 linux diff命令
如果兩個二進制文件相同,diff就什麼也不顯示,否則只簡單報告一下這兩個文件是不相同的。
diff命令的功能為逐行比較兩個文本文件,列出其不同之處。由於二進制文件沒有行結構,diff程序將不顯示所有的編輯行信息。
『陸』 計算機編程中的diff是什麼意思
diff 命令比較文本文件。它能比較單個文件或者目錄內容。
注:
diff 命令只有當輸入為文本文件時才有效。
如果指定了 Directory1 和 Directory2 參數,diff 命令比較兩個目錄下名字相同的文本文件。列出不同的二進制文件、公共子目錄和只在一個目錄出現的文件。 當 diff 命令運行於常規文件時,且當目錄比較期間比較不同的文本文件時,diff 命令顯示文件中哪些行必須更改以保持它們一致。如果 File1 和 File2 參數都不是目錄,其中之一可能給定負號「-」,以採用標准輸入。如果 File1 參數是目錄,則使用目錄中與 File2 參數指定的文件名一致的那個文件。
『柒』 Linux文件比較命令的diff命令
1>diff命令的功能
linux中diff命令的功能為逐行比較兩個文本文件,列出其不同之處。它對給出的文件進行系統的檢查,並顯示出兩個文件中所有不同的行,不要求事先對文件進行排序。
2>語法
diff
[options]
file1
file2
該命令告訴用戶,為了使兩個文件file1和file2一致,需要修改它們的哪些行。如果用」-」表示file1或file2,則表示標准輸入。如果file1或file2是目錄,那麼diff將使用該目錄中的同名文件進行比較。
3>[options]主要參數
-a:將所有文件當作文本文件來處理。
-b或–ignore-space-change
忽略空格造成的不同。
-b或–ignore-blank-lines
忽略空行造成的不同。
-c:使用綱要輸出格式。
-h:利用試探法加速對大文件的搜索。
-i:忽略大小寫的變化。
-n
–rcs:輸出rcs格式。
-n或–new-file
在比較目錄時,若文件a僅出現在某個目錄中,會顯示:only
in目錄;文件a若使用-n參數,則diff會將文件a與一個空白的文件比較。
-r或–recursive
比較子目錄中的文件。
-u,-u<列數>或–unified=<列數>
以合並的方式來顯示文件內容的不同。
4>使用方法的實例說明
例如:
diff
/usr/xu
mine
把目錄/usr/xu
中名為mine的文件與當前目錄中的mine文件進行比較。
通常輸出由下述形式的行組成:
n1
a
n3,n4
n1,n2
d
n3
n1,n2
c
n3,n4
這些行類似ed命令把filel轉換成file2。字母(a、d和c)之前的行號(n1,n2)是針對file1的,其後面的行號(n3,n4)是針對file2的。字母a、d和c分別表示附加、刪除和修改操作。
在上述形式的每一行的後面跟隨受到影響的若干行,以」<」打頭的行屬於第一個文件,以」>」打頭的行屬於第二個文件。
diff能區別塊和字元設備文件以及fifo(管道文件),不會把它們與普通文件進行比較。
如果file1和file2都是目錄,則diff會產生很多信息。
5>diff最常用的功能
diff有很多功能平時我們不常用到,最常用的功能莫過於生成patch文件了:
diff
-urn
old/
new/
>
mysoft.patch
參數
-u
表示使用
unified
格式,-r
表示比較目錄,-n
表示將不存在的文件當作空文件處理,這樣新添加的文件也會出現在patch文件中。
然後在需要應用patch的地方使用下述命令即可:
patch
-p0
<
mysoft.patch
diff的
-y
命令(長格式為
–side-by-side)可以將屏幕分成左右兩部分,來比較兩個文件之間的差異。許多圖形化的比較工具都有這個功能,但如果只能使用命令行,這個參數就相當有用了。如果要改變左右各部分的寬度,可以通過
-w
(–width)參數來指定。
–ignore-blank-lines
參數可以不檢查空白行。這樣dos格式和unix格式的文件互相比較時,就不至於因為換行符不一致而出現大量的差異。
『捌』 為什麼git diff顯示不出兩個文件不同的地方
你好,git diff HEAD 是以當前文件和git 庫裡面的文件做DIFF,你輸入命令後顯示的意思不是a/ 目錄下的wanglei.txt 和 b/目錄下wanglei.txt之間不一樣,而是a/wanglei.txt 代表你提交到git 庫裡面文件wanglei.txt,而b/wanglei.txt 是後來你在本地做了修改的wanglei.txt文件,都是在當前的目錄下wanglei.txt,不過一個是已經被提交到git 庫裡面了 ,另一個是你剛剛替換了,和之前的不一樣了 ,所以git diff 會顯示這個結果,如果你想學習git 我推薦你看下 progit 和git權威指南 下載鏈接http://download.csdn.net/detail/dongwuming/5859863
『玖』 linux diff為什麼兩個文件沒有差別也顯示全文都不一樣
肯定有差別,比如不可見字元,像是每行最後空格個數,或者回車換行和換行的差別