2.cmp
3.patch
通常,乙個軟體包的不同版本之間,比較配置檔案與原始檔案包的差異時會用到對比工具,而很多時候所說的對比都是之在ascii純文字檔案上的對比, 最常見的文字對比工具就是diff了,除此之外,比較非文字文件檔案之間的差異時,可以用cmp命令。
diff顧名思義,對比兩個檔案之間的差異的,並且是以行為單位來進行對比的。一般用在ascii純文字檔案上。
因此,diff通常用在對比同一檔案或軟體的新舊版本差異上。
語法,選項與引數
語法
diff [-bbi] from-file to-file選項與引數
引數含義
from-file
檔名,作為原始對比檔案
to-file
檔名,作為目標對比檔案
注:from-file或to-file可以用-(stdin)來代替,另外不要對比兩個完全不相同的檔案,沒有意義,也比不出來什麼
選項含義
-b忽略一行中僅有空白的差異,如"about me"和"about me"會被是為相同
-b忽略空白行的差異
-i忽略大小寫的差異
使用樣例
首先我們利用前面學過的命令,進行如下操作:
將/etc/passwd檔案的第4行刪除,並且將第6行的內容替換為"no six line",然後將編輯過的內容輸出到passwd.new檔案
cat /etc/passwd | sed -e 『4d』 -e 『6c no six line』 > passwd.new然後我們來對比一下檔案內容
4d3:左邊第四行被刪除了,基礎是右邊的第三行
< adm:x:3:4:adm:/var/adm:/sbin/nologin:左邊(
6c5:左邊第6行的內容被右邊第5行的內容做取代了
< sync:x:5:0:sync:/sbin:/bin/sync:左邊第6行的內容
---> no six line:右邊第5行的內容
diff /etc/rc.d/rc0.d /etc/rc.d/rc5.d相對於diff的廣泛用途,cmp似乎就用的沒那麼多了,cmp主要也是用於對比2個檔案,不過,它主要是利用位元組為單位去做對比,因此,cmp也可以用來去比較binary file
語法,選項
語法
cmp [-l] file1 file2選項與
選項含義
-l將所有不同都列出來,因為cmp預設只會輸出第乙個發現的不同
下面我們來用cmp命令比較一下上面做成的檔案。
上面的對比結果顯示,第4行發現了共有106個位元組有差異。
path與diff命令密不可分,diff可以用來比較兩個檔案之間的差異,我們可以將差異製作成公升級補丁,這樣就可以利用公升級補丁來進行公升級。
diff -naur /etc/passwd passwd.new > passwd.patch首先利用diff命令,進行檔案內容對比,並將差異內容輸出到passwd.patch
====新舊檔案差異
+++ passwd.new 2019-10-20 09:42:16.303122230 +0800
@@ -1,9 +1,8 @@ <<
====新舊文件要修改資料的界定範圍,舊文件在1-9行,新文件在1-8行
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
-adm:x:3:4:adm:/var/adm:/sbin/nologin <<
====左側檔案刪除內容
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
-sync:x:5:0:sync:/sbin:/bin/sync <<
====左側檔案刪除內容
+no six line <<
====右側檔案新增內容
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
語法,選項
語法
patch -pn < patch_file更新選項與patch -r -pn < patch_file還原
選項含義
-p數字,取消幾層目錄的意思
-r代表還原,將新的檔案還原成原來的舊檔案版本
使用樣例
這裡我們將passwd.new還原成/etc/passwd原來的內容
// p0表示要還原的檔案和補丁檔案在同乙個目錄下,所以無需刪減目錄層數
patch -r -p0 < passwd.patch
發現,還原後,檔案的大小一樣 批量對比檔案內容 免費檔案內容對比工具
今天給大家介紹一款 windows 下的文字檔案對比和合併工具,支援 高亮 逐行顯示差異 整合 windows 資源管理器等功能 diffinity diffinity是乙個免費的windows差異合併工具,專注於準確易讀的源 它將比較兩個文字檔案的內容,並逐行顯示所有差異,以及不同的單個字元 單詞...
git工具 對比檔案的不同
對比工作區和某個版本中檔案的不同 1 繼續編輯檔案code.txt,在其中新增一行內容 2 現在要對比工作區中code.txt和head版本中code.txt的不同,使用如下命令 前面沒有出現 就是兩個檔案中都有的內容,代表head版本中檔案 對應工作區中的檔案 3 使用git checkout c...
資料夾差異檔案對比工具
coding utf 8 created on 2010 4 30 author shiyong import os class compare object 資料夾比較工具 功能 目前只未比較檔案的名稱和大小,未比較md5 def init self constructor 遍歷比較 def vi...