背景
成都創(chuàng)新互聯(lián)公司主營樂東黎族網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都App制作,樂東黎族h5成都小程序開發(fā)搭建,樂東黎族網(wǎng)站營銷推廣歡迎樂東黎族等地區(qū)企業(yè)咨詢
在Linux系統(tǒng)環(huán)境的工作過程中,經(jīng)常遇到需要對(duì)比文件差異的情況,此時(shí),使用Linux提供的diff工具可以方便的發(fā)現(xiàn)文件不同版本之間差異,從而快速排除解決問題。
Windows端有強(qiáng)大文件對(duì)比工具BeyondCompare。
patch 命令可以將diff命令的輸出應(yīng)用到原始的對(duì)比文件中,將新版本的更新應(yīng)用到原始的文件中。
命令
diff [option] [file1] [file2]
patch [option] [file1] [file_differ]
測(cè)試環(huán)境
WSL: Linux PERSONALPC 4.4.0-19041-Microsoft #488-Microsoft Mon Sep 01 13:43:00 PST 2020 x86_64 x86_64 x86_64 GNU/Linux
測(cè)試過程
假設(shè)一個(gè)人A寫了main.c程序之后,把代碼發(fā)給另外一個(gè)人B,B寫了程序之后,再把代碼合入到自己的當(dāng)中,但是A只想把B的差異部分合入到自己的代碼當(dāng)中,在這種情況之下可以通過diff命令生成差異文件,在合入到自己的代碼當(dāng)中。
代碼結(jié)構(gòu):
A編寫的test1/main.c
B編寫的test2/main.c
diff 命令生成差異文件:diff -ruNa test1/main.c test2/main.c diff.patch
diff.patch內(nèi)容如下
使用如下命令即可把patch合入,合入之后,test1/main.c的內(nèi)容跟test2/main.c的一樣
;?????diff命令在最簡單的情況下,比較給定的兩個(gè)文件的不同。如果使用“-”代替“文件”參數(shù),則要比較的內(nèi)容將來自標(biāo)準(zhǔn)輸入。diff命令是以逐行的方式,比較文本文件的異同處。如果該命令指定進(jìn)行目錄的比較,則將會(huì)比較該目錄中具有相同文件名的文件,而不會(huì)對(duì)其子目錄文件進(jìn)行任何比較操作。下面是linuxdiff命令的具體介紹:
diff(diff即different簡寫)命令用于比較文件的差異。
選項(xiàng):
-
-a或——text:diff預(yù)設(shè)只會(huì)逐行比較文本文件;
-b或_ignore-space-change:不檢查空格字符的不同;
-B或_ignore-blank-lines:不檢查空白行;
-c:顯示全部內(nèi)容,并標(biāo)出不同之處;
-C
-d或——minimal:使用不同的演算法,以小的單位來做比較;
-D
-e或——ed:此參數(shù)的輸出格式可用于ed的script文件;
-f或-forward-ed:輸出的格式類似ed的script文件,但按照原來文件的順序來顯示不同處;
-H或_speed-large-files:比較大文件時(shí),可加快速度;
-l
-i或_ignore-case:不檢查大小寫的不同;
-l或——paginate:將結(jié)果交由pr程序來分頁;
-n或——rcs:將比較結(jié)果以RCS的格式來顯示;
-N或_new-file:在比較目錄時(shí),若文件A僅出現(xiàn)在某個(gè)目錄中,預(yù)設(shè)會(huì)顯示:Onlyin目錄,文件A若使用-N參數(shù),則diff會(huì)將文件A與一個(gè)空白的文件比較;
-p:若比較的文件為C語言的程序碼文件時(shí),顯示差異所在的函數(shù)名稱;
-P或_unidirectional-new-file:與-N類似,但只有當(dāng)?shù)诙€(gè)目錄包含了第一個(gè)目錄所沒有的文件時(shí),才會(huì)將這個(gè)文件與空白的文件做比較;
-q或_brief僅顯示有無差異,不顯示詳細(xì)的信息;
-r或——recursive:比較子目錄中的文件;
-s或_report-identical-files:若沒有發(fā)現(xiàn)任何差異,仍然顯示信息;
-S
-t或_expand-tabs:在輸出時(shí),將tab字符展開;
-T或_initial-tab:在每行前面加上tab字符以便對(duì)齊;
-u,-U
-v或——version:顯示版本信息;
-w或_ignore-all-space:忽略全部的空格字符;
-W
-x
-X
-y或_side-by-side:以并列的方式顯示文件的異同之處;
_help:顯示幫助;
_left-column:在使用-y參數(shù)時(shí),若兩個(gè)文件某一行內(nèi)容相同,則僅在左側(cè)的欄位顯示該行內(nèi)容;
_suppress-common-lines:在使用-y參數(shù)時(shí),僅顯示不同之處。
以上就是今天的分享了,希望可以幫助到大家。
本文章基于thinkpadE15品牌、centos7系統(tǒng)撰寫的。