日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

總述

linux diff命令用于比較文件的差異。diff以逐行的方式,比較文本文件的異同處。特別是比較兩個版本不同的文件,如果指定要比較目錄,則diff會比較目錄中相同文件名的文件,但不會比較其中的目錄。diff命令可以同時輸出成補丁文件,并且Linux中還有一個patch命令,可以依據diff生成的.patch補丁文件,將a.c與b.c兩個文件差異部分更新到需要修改的文件。此外diff在SVN 、GIT、CVS等版本控制工具中也是不可或缺的一部分。

下面我就詳細描述一下diff命令的使用:

作者:良知猶存

轉載授權以及圍觀:歡迎添加微信公眾號:羽林君

1 指令格式

在Linux 中,我們可以使用 diff --help 查看詳細指導(篇幅有限只截圖了一部分作為展示)

Linux下diff的操作詳解

 


Linux下diff的操作詳解

 

常用命令格式:

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

 

常用命令展示:

 

1.Linux內核diff自定義的補丁

 

diff -ruN linux-4.19-rc3_lyn linux-4.19-rc3 > linux-4.19-rc3_lyn.patch
Linux下diff的操作詳解

 

這個是我經常使用的命令,用來比較生成我修改后的代碼的補丁包,最后用patch命令打補丁到需要使用的內核源碼中去

Linux下diff的操作詳解

 


Linux下diff的操作詳解

 

?

 

2.在git中也會有diff可以查看兩次版本的差異

git diff 04120e84525eca1c590d30b84ce7463b9e8a1497 f88b0054170b99b149bd0fbe5f138c66c64dd1c6
Linux下diff的操作詳解

 

其中diff之后的版本號通過git log 打印出來進行比較

Linux下diff的操作詳解

 


Linux下diff的操作詳解

 

?

 

2 命令參數詳細解釋

-<行數>:指定要顯示多少行的文本。此參數必須與-c或-u參數一并使用;

-a或--text:diff預設只會逐行比較文本文件;

-b或--ignore-space-change:不檢查空格字符的不同;

-B或--ignore-blank-lines:不檢查空白行;

-c:顯示全部內容,并標出不同之處;

-C<行數>或--context<行數>:與執行“-c-<行數>”指令相同;

-d或——minimal:使用不同的演算法,以小的單位來做比較;

-D<巨集名稱>或ifdef<巨集名稱>:此參數的輸出格式可用于前置處理器巨集;

-e或——ed:此參數的輸出格式可用于ed的script文件;

-f或-forward-ed:輸出的格式類似ed的script文件,但按照原來文件的順序來顯示不同處;

-H或--speed-large-files:比較大文件時,可加快速度;

-l<字符或字符串>或--ignore-matching-lines<字符或字符串>:若兩個文件在某幾行有所不同,而這幾行同時都包含了選項中指定的字符或字符串,則不顯示這兩個文件的差異;

-i或--ignore-case:不檢查大小寫的不同;

-l或——paginate:將結果交由pr程序來分頁;

-n或——rcs:將比較結果以RCS的格式來顯示;

-N或--new-file:在比較目錄時,若文件A僅出現在某個目錄中,預設會顯示:Only in目錄,文件A 若使用-N參數,則diff會將文件A 與一個空白的文件比較;

-p:若比較的文件為C語言的程序碼文件時,顯示差異所在的函數名稱;

-P或--unidirectional-new-file:與-N類似,但只有當第二個目錄包含了第一個目錄所沒有的文件時,才會將這個文件與空白的文件做比較;

-q或--brief:僅顯示有無差異,不顯示詳細的信息;

-r或——recursive:比較子目錄中的文件;

-s或--report-identical-files:若沒有發現任何差異,仍然顯示信息;

-S<文件>或--starting-file<文件>:在比較目錄時,從指定的文件開始比較;

-t或--expand-tabs:在輸出時,將tab字符展開;

-T或--initial-tab:在每行前面加上tab字符以便對齊;

-u,-U<列數>或--unified=<列數>:以合并的方式來顯示文件內容的不同;

-v或——version:顯示版本信息;

 

3 diff輸出的文件解釋

說完了diff命令的操作,我們再來看看diff命令輸出文件,因為有時候我們通過輸出信息自己比對文件的差異結論。

 

1.diff直接輸出到終端顯示

Linux下diff的操作詳解

 


Linux下diff的操作詳解

 

?

 

說明:

  • "<"表示后面文件比前面文件少了1行內容
  • ">"表示后面文件比前面文件多了1行內容


2.diff直接輸出為patch文件查看

Linux下diff的操作詳解

 


Linux下diff的操作詳解

 

?

如圖所示,我打開了我對比內核代碼之后生成的.patch文件為例:

里面有每個文件都會標注

Binary files linux-4.19-rc3_lyn/arch/arm/boot/compressed/ashldi3.o and linux-4.19-rc3/arch/arm/boot/compressed/ashldi3.o differ
diff -ruN linux-4.19-rc3_lyn/arch/arm/boot/compressed/.ashldi3.o.cmd linux-4.19-rc3/arch/arm/boot/compressed/.ashldi3.o.cmd
--- linux-4.19-rc3_lyn/arch/arm/boot/compressed/.ashldi3.o.cmd  1970-01-01 08:00:00.000000000 +0800
+++ linux-4.19-rc3/arch/arm/boot/compressed/.ashldi3.o.cmd  2020-08-21 10:54:52.774658500 +0800
@@ -0,0 +1,80 @@
+cmd_arch/arm/boot/compressed/ashldi3.o := arm-linux-gnueabi-gcc -Wp,-MD,arch/arm/boot/compressed/.ashldi3.o.d  -nostdinc -isystem /work/tools/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabi/bin/..        /lib/gcc/arm-linux-gnueabi/4.9.4/include -I./arch/arm/include -I./arch/arm/include/generated  -I./include -I./arch/arm/include/uapi -I./arch/arm/include/generated/uapi -I./include/uapi -I./include/ge        nerated/uapi -include ./include/linux/kconfig.h -D__KERNEL__ -Iarch/arm/mach-s3c24xx/include -Iarch/arm/plat-samsung/include -D__ASSEMBLY__ -fno-PIE -DCC_HAVE_ASM_GOTO -funwind-tables -marm -Wa,-mno-        warn-deprecated -D__LINUX_ARM_ARCH__=4 -march=armv4t -mtune=arm9tdmi -include asm/unified.h -msoft-float -Wa,-gdwarf-2 -DZIMAGE   -c -o arch/arm/boot/compressed/ashldi3.o arch/arm/boot/compressed/ash        ldi3.S
+
+source_arch/arm/boot/compressed/ashldi3.o := arch/arm/boot/compressed/ashldi3.S
+
+deps_arch/arm/boot/compressed/ashldi3.o := 
Linux下diff的操作詳解

 

第一部分,也是文件的基本信息:

--- linux-4.19-rc3_lyn/arch/arm/boot/compressed/.ashldi3.o.cmd 1970-01-01 08:00:00.000000000 +0800

+++ linux-4.19-rc3/arch/arm/boot/compressed/.ashldi3.o.cmd 2020-08-21 10:54:52.774658500 +0800

 

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

 

第二部分,變動的位置用兩個@作為起首和結束。

 

   @@ -0,0 +1,80 @@

前面的"-0,0"分成三個部分:減號表示第一個文件(即linux-4.19-rc3_lyn/arch/arm/boot/compressed/.ashldi3.o.cmd),"0"表示第0行,后一個"0"表示連續0行;同樣的,"+1,10",加號表示第二個文件,就表示下面是第二個文件從第1行開始的連續80行。

 

通過這些信息我們就可以看懂對比之后文件的差異處了,是不是很容易呢。

 

這就是我分享的linux下diff命令,如果大家有什么更好的思路,歡迎分享交流哈。

分享到:
標簽:Linux diff
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定