當前位置:首頁 » 文件管理 » diff文件夾比較

diff文件夾比較

發布時間: 2022-12-28 11:28:22

⑴ diff(patch):比較兩個文件之間的區別(補丁)

diff -u:將兩個文件相同與不同的信息存放到指定的文件中

刪除了passwd.new之後,通過patch命令恢復

因為patch命令默認會覆蓋原來的文件,所以加上-b選項,將文件自動備份為以.orig為後綴的文件
patch -b 比較文件 diff文件
patch:將diff文件中的相同和與之不同信息恢復,並命名為「比較文件」

⑵ diff命令和patch命令的使用

diff 命令是 linux上非常重要的工具,用於比較文件的內容,特別是比較兩個版本不同的文件以找到改動的地方。diff在命令行中列印每一個行的改動。最新版本的diff還支持二進制文件。diff程序的輸出被稱為補丁 (patch),因為Linux系統中還有一個patch程序,可以根據diff的輸出將a.c的文件內容更新為b.c。diff是svn、cvs、git等版本控制工具不可或缺的一部分。

diff命令的格式一般為:

diff [參數][文件或者目錄1][文件或者目錄2]

例如,有文件test1和test2:

將會輸出:

格式的含義如注釋所示。

diff 的normal 顯示格式有三種提示:

a - add

c - change

d - delete

比較常用的是以合並的方式顯示兩個文件的不同:

輸出如:

這種輸出方式輸出的內容可以用於使用patch命令進行打補丁包。patch命令我們稍後再看。

diff命令也可以比較兩個文件夾的不同:

例如有兩個文件夾testa和test,將test1和test2放進去:

得到:

第一部分是文件的信息

"---"表示變動前的文件,"+++"表示變動後的文件。

第二部分表示變動的位置

@@ -1,11 +1,5 @@

減號表示第一個文件,後面的表示第一行起一共11行。加號表示第二個文件。後面是第一行起一共5行。

接下來的表示區別的部分。

例如:

將得到:

這種模式中

「|」表示前後2個文件內容有不同

「<」表示後面文件比前面文件少了1行內容

「>」表示後面文件比前面文件多了1行內容

我們可以先用diff命令生成patch文件。然後使用patch命令將第二個文件內容修改成第一個文件的內容。

例如上述的test1和test2:

之後test2的內容就會和test1內容一致了。

svn diff生成的patch也可以用於更新文件

⑶ 怎麼快速對比兩個Linux文件夾

一】可以通過ls -l|wc -l對比文件數量是否一樣
二】可以通過ls -l >filename.txt然後再diff filename1.txt filename2.txt,將文件名列出來並重定向到一個文件,然後通過diff命令對比這兩個文件即可找到有哪些文件不一致。
三】升級版,通過md5sum命令生成md5碼,然後用for循環進行遍歷對比

⑷ 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格式的文件互相比較時,就不至於因為換行符不一致而出現大量的差異。

⑸ Liunx比較命令:comm/diff

比較兩個文件內容的不同,主要有comm和diff兩個命令。

主要用法:comm file1.txt file2.txt

註:在comm比較之前需要對兩個文件進行sort !!!

可以輸出在僅第一個文件里出現的、僅在第二個文件里出現的和兩個文件共有的內容:

comm -1 file1.txt file2.txt # 不顯示第一個文件特有的內容,顯示第二個文件特有的內容和共有的內容
comm -2 file1.txt file2.txt # 不顯示第二個文件特有內容
comm -3 file1.txt file2.txt # 不顯示共有
comm -12 file1.txt file2.txt # 第一個和第二個共有
comm -23 file1.txt file2.txt # 第一個特有
comm -13 file1.txt file2.txt # 第二個特有

也可以專門比較某兩列或某幾列:

comm -12 <(sort file1.txt | cut -f1) <(sort file1.txt | cut -f2.txt) # 這個只能在前台運行

diff可以直接輸出比較結果,對第一個文件提出修改建議使得第一個文件與第二個文件一致。

創建兩個文件:cat file1.txt
one
two
three
第二個文件: file2.txt
one
two

文件夾內容比較:

diff -ruNa dir1/ dir2/

-------------------------------------------------------------------------------------------------------------------------------------------------------------I'm a line ! Thanks !----------------------------------------------------------------------------------------------------------------

⑹ linux diff命令詳解

diff命令在最簡單的情況下,比較給定的兩個文件的不同。如果使用「-」代替「文件」參數,則要比較的內容將來自標准輸入。diff命令是以逐行的方式,比較文本文件的異同處。如果該命令指定進行目錄的比較,則將會比較該目錄中具有相同文件名的文件,而不會對其子目錄文件進行任何比較操作。下面是linuxdiff命令的具體介紹:
diff(diff即different簡寫)命令用於比較文件的差異。
選項:
-
-a或——text:diff預設只會逐行比較文本文件;
-b或_ignore-space-change:不檢查空格字元的不同;
-B或_ignore-blank-lines:不檢查空白行;
-c:顯示全部內容,並標出不同之處;
-C
-d或——minimal:使用不同的演演算法,以小的單位來做比較;
-D
-e或——ed:此參數的輸出格式可用於ed的script文件;
-f或-forward-ed:輸出的格式類似ed的script文件,但按照原來文件的順序來顯示不同處;
-H或_speed-large-files:比較大文件時,可加快速度;
-l
-i或_ignore-case:不檢查大小寫的不同;
-l或——paginate:將結果交由pr程序來分頁;
-n或——rcs:將比較結果以RCS的格式來顯示;
-N或_new-file:在比較目錄時,若文件A僅出現在某個目錄中,預設會顯示:Onlyin目錄,文件A若使用-N參數,則diff會將文件A與一個空白的文件比較;
-p:若比較的文件為C語言的程序碼文件時,顯示差異所在的函數名稱;
-P或_unidirectional-new-file:與-N類似,但只有當第二個目錄包含了第一個目錄所沒有的文件時,才會將這個文件與空白的文件做比較;
-q或_brief僅顯示有無差異,不顯示詳細的信息;
-r或——recursive:比較子目錄中的文件;
-s或_report-identical-files:若沒有發現任何差異,仍然顯示信息;
-S
-t或_expand-tabs:在輸出時,將tab字元展開;
-T或_initial-tab:在每行前面加上tab字元以便對齊;
-u,-U
-v或——version:顯示版本信息;
-w或_ignore-all-space:忽略全部的空格字元;
-W
-x
-X
-y或_side-by-side:以並列的方式顯示文件的異同之處;
_help:顯示幫助;
_left-column:在使用-y參數時,若兩個文件某一行內容相同,則僅在左側的欄位顯示該行內容;
_suppress-common-lines:在使用-y參數時,僅顯示不同之處。
以上就是今天的分享了,希望可以幫助到大家。
本文章基於thinkpadE15品牌、centos7系統撰寫的。

⑺ 如何用diff比較兩個文件夾下的內容

使用diff命令即可
diff path1 path2
實例如下:
[root@mpf202 mao]# mkdir /mao1
[root@mpf202 mao]# mkdir /mao2
[root@mpf202 mao]# diff /mao1 /mao2
[root@mpf202 mao]# touch /mao1/test
[root@mpf202 mao]# diff /mao1 /mao2
Only in /mao1: test
[root@mpf202 mao]#

熱點內容
dhcp伺服器租用其IP地址 發布:2025-08-23 09:02:33 瀏覽:4
android列印時間 發布:2025-08-23 09:02:32 瀏覽:373
p30哪個配置銷量大 發布:2025-08-23 08:53:10 瀏覽:914
liunxsvn創建文件夾 發布:2025-08-23 08:23:11 瀏覽:739
日文解壓 發布:2025-08-23 08:02:24 瀏覽:629
街籃二蘋果怎麼和安卓玩游戲 發布:2025-08-23 07:56:47 瀏覽:64
linuxh3c 發布:2025-08-23 07:39:25 瀏覽:159
免費電腦主機伺服器 發布:2025-08-23 07:39:21 瀏覽:596
js是解釋執行還是編譯執行 發布:2025-08-23 07:24:23 瀏覽:529
vb循環腳本 發布:2025-08-23 07:18:31 瀏覽:745