在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Linux/ diff命令
which命令
ss命令
cp命令使用示例
ps命令
find命令
grep命令
scp命令
rmdir命令
df命令示例
less命令
du命令示例
chown命令示例
route命令
ping命令
more命令
mv命令
ln命令
mkdir命令
rm命令
find命令常用參數(shù)示例
cat命令
find命令-xargs參數(shù)
touch命令
traceroute命令
gzip命令示例
date命令
ls命令
vmstat命令
lsof命令
diff命令
head命令
watch命令
ifconfig命令
cd命令
tail命令
iostat命令
chgrp命令示例
free命令
find命令-exec參數(shù)
tar命令打包解壓示例
cal命令
at命令
netstat命令
wc命令
chmod命令示例
pwd命令
top命令詳解示例
crontab命令(Linux定時(shí)任務(wù))
whereis命令
Linux命令大全教程
nl命令
rcp命令
locate命令

diff命令

diff命令是 linux上非常重要的工具,用于比較文件的內(nèi)容,特別是比較兩個(gè)版本不同的文件以找到改動(dòng)的地方。diff在命令行中打印每一個(gè)行的改動(dòng)。最新版本的diff還支持二進(jìn)制文件。diff程序的輸出被稱為補(bǔ)丁 (patch),因?yàn)長(zhǎng)inux系統(tǒng)中還有一個(gè)patch程序,可以根據(jù)diff的輸出將a.c的文件內(nèi)容更新為b.cdiff是svn、cvs、git等版本控制工具不可或缺的一部分。

1.命令格式

diff[參數(shù)][文件1或目錄1][文件2或目錄2]

2.命令功能

diff命令能比較單個(gè)文件或者目錄內(nèi)容。如果指定比較的是文件,則只有當(dāng)輸入為文本文件時(shí)才有效。以逐行的方式,比較文本文件的異同處。如果指定比較的是目錄的的時(shí)候,diff 命令會(huì)比較兩個(gè)目錄下名字相同的文本文件。列出不同的二進(jìn)制文件、公共子目錄和只在一個(gè)目錄出現(xiàn)的文件。

3.命令參數(shù)

  • -  指定要顯示多少行的文本。此參數(shù)必須與-c或-u參數(shù)一并使用。
  • -a--text diff預(yù)設(shè)只會(huì)逐行比較文本文件。
  • -b--ignore-space-change  不檢查空格字符的不同。
  • -B--ignore-blank-lines  不檢查空白行。
  • -c  顯示全部?jī)?nèi)文,并標(biāo)出不同之處。
  • -C--context  與執(zhí)行”-c-“指令相同。
  • -d--minimal  使用不同的演算法,以較小的單位來(lái)做比較。
  • -Difdef  此參數(shù)的輸出格式可用于前置處理器巨集。
  • -e--ed  此參數(shù)的輸出格式可用于ed的script文件。
  • -f-forward-ed  輸出的格式類似ed的script文件,但按照原來(lái)文件的順序來(lái)顯示不同處。
  • -H--speed-large-files  比較大文件時(shí),可加快速度。
  • -l--ignore-matching-lines  若兩個(gè)文件在某幾行有所不同,而這幾行同時(shí)都包含了選項(xiàng)中指定的字符或字符串,則不顯示這兩個(gè)文件的差異。
  • -i--ignore-case  不檢查大小寫的不同。
  • -l--paginate  將結(jié)果交由pr程序來(lái)分頁(yè)。
  • -n--rcs  將比較結(jié)果以RCS的格式來(lái)顯示。
  • -N--new-file  在比較目錄時(shí),若文件A僅出現(xiàn)在某個(gè)目錄中,預(yù)設(shè)會(huì)顯示:Only in目錄:文件A若使用-N參數(shù),則diff會(huì)將文件A與一個(gè)空白的文件比較。
  • -p  若比較的文件為C語(yǔ)言的程序碼文件時(shí),顯示差異所在的函數(shù)名稱。
  • -P--unidirectional-new-file  與-N類似,但只有當(dāng)?shù)诙€(gè)目錄包含了一個(gè)第一個(gè)目錄所沒(méi)有的文件時(shí),才會(huì)將這個(gè)文件與空白的文件做比較。
  • -q--brief  僅顯示有無(wú)差異,不顯示詳細(xì)的信息。
  • -r--recursive  比較子目錄中的文件。
  • -s--report-identical-files  若沒(méi)有發(fā)現(xiàn)任何差異,仍然顯示信息。
  • -S--starting-file  在比較目錄時(shí),從指定的文件開(kāi)始比較。
  • -t--expand-tabs  在輸出時(shí),將tab字符展開(kāi)。
  • -T--initial-tab  在每行前面加上tab字符以便對(duì)齊。
  • -u,-U--unified=  以合并的方式來(lái)顯示文件內(nèi)容的不同。
  • -v--version  顯示版本信息。
  • -w--ignore-all-space  忽略全部的空格字符。
  • -W--width  在使用-y參數(shù)時(shí),指定欄寬。
  • -x--exclude  不比較選項(xiàng)中所指定的文件或目錄。
  • -X--exclude-from  您可以將文件或目錄類型存成文本文件,然后在=中指定此文本文件。
  • -y--side-by-side  以并列的方式顯示文件的異同之處。
  • --help  顯示幫助。
  • --left-column  在使用-y參數(shù)時(shí),若兩個(gè)文件某一行內(nèi)容相同,則僅在左側(cè)的欄位顯示該行內(nèi)容。
  • --suppress-common-lines  在使用-y參數(shù)時(shí),僅顯示不同之處。

4.使用實(shí)例

實(shí)例1:比較兩個(gè)文件

命令執(zhí)行和輸出:

[yiibai@localhost ~]$ cat file1.txt
1001
1002
1003
[yiibai@localhost ~]$ cat file2.txt
1001
1002
1003a
1004
[yiibai@localhost ~]$ diff file1.txt file2.txt
3c3,4
< 1003
---
> 1003a
> 1004
[yiibai@localhost ~]$

說(shuō)明:
上面的“3c3,4”表示file1.txtfile2.txt文件在3行和第4行內(nèi)容有所不同;
diff 的 normal 顯示格式有三種提示:

  • a - add
  • c - change
  • d - delete

實(shí)例2:并排格式輸出

兩個(gè)文件的每一行對(duì)比輸出
命令:

diff file1.txt file2.txt  -y -W 50

輸出:

[yiibai@localhost ~]$ diff file1.txt file2.txt  -y -W 50
1001                    1001
1002                    1002
1003                  | 1003a
                      > 1004
[yiibai@localhost ~]$

說(shuō)明:

  • |”表示前后2個(gè)文件內(nèi)容有不同
  • <”表示后面文件比前面文件少了1行內(nèi)容
  • >”表示后面文件比前面文件多了1行內(nèi)容

實(shí)例3:上下文輸出格式

命令:

diff file1.txt file2.txt   -c

輸出:

[yiibai@localhost ~]$ diff file1.txt file2.txt   -c
*** file1.txt   2017-02-23 20:34:51.752009952 -0500
--- file2.txt   2017-02-23 20:35:12.590809278 -0500
***************
*** 1,3 ****
  1001
  1002
! 1003
--- 1,4 ----
  1001
  1002
! 1003a
! 1004
[yiibai@localhost ~]$

實(shí)例4:統(tǒng)一格式輸出

命令:

diff file1.txt file2.txt  -u

輸出:

[yiibai@localhost ~]$ diff file1.txt file2.txt  -u
--- file1.txt   2017-02-23 20:34:51.752009952 -0500
+++ file2.txt   2017-02-23 20:35:12.590809278 -0500
@@ -1,3 +1,4 @@
 1001
 1002
-1003
+1003a
+1004
[yiibai@localhost ~]$

說(shuō)明:
它的第一部分,也是文件的基本信息:

--- file1.txt   2017-02-23 20:34:51.752009952 -0500
+++ file2.txt   2017-02-23 20:35:12.590809278 -0500

---"表示變動(dòng)前的文件,”+++“表示變動(dòng)后的文件。
第二部分,變動(dòng)的位置用兩個(gè)@作為起首和結(jié)束。
@@ -1,3 +1,4 @@
前面的”-1,3“分成三個(gè)部分:減號(hào)表示第一個(gè)文件(即file1.txt),”1“表示第1行,”3”表示連續(xù)3行。合在一起,就表示下面是第一個(gè)文件從第1行開(kāi)始的連續(xù)3行。同樣的,”+1,4“表示變動(dòng)后,成為第二個(gè)文件從第1行開(kāi)始的連續(xù)4行。

實(shí)例5:比較文件夾不同

命令:

diff  test4 test5

輸出:

[yiibai@localhost ~]$ ll test4/
total 4
-rw-rw-r-- 2 yiibai yiibai 559 Feb 23 20:13 newlog.log
[yiibai@localhost ~]$ ll test5/
total 16
-rw-rw-r-- 1 yiibai yiibai  15 Feb 23 20:48 file1.txt
-rw-rw-r-- 1 yiibai yiibai  21 Feb 23 20:48 file2.txt
-rw-rw-r-- 1 yiibai yiibai 559 Feb 23 20:47 newlog.log
-rw-rw-r-- 1 yiibai yiibai  12 Feb 23 20:47 run.py
[yiibai@localhost ~]$ diff  test4 test5
Only in test5: file1.txt
Only in test5: file2.txt
Only in test5: run.py
[yiibai@localhost ~]$

實(shí)例6:比較兩個(gè)文件不同,并生產(chǎn)補(bǔ)丁

命令:

diff -ruN file1.txt file2.txt > patch.txt

輸出:

[yiibai@localhost ~]$ diff -ruN file1.txt file2.txt > patch.txt
[yiibai@localhost ~]$ cat patch.txt
--- file1.txt   2017-02-23 20:34:51.752009952 -0500
+++ file2.txt   2017-02-23 20:35:12.590809278 -0500
@@ -1,3 +1,4 @@
 1001
 1002
-1003
+1003a
+1004
[yiibai@localhost ~]$

實(shí)例7:打補(bǔ)丁

現(xiàn)在,要使用 file1.txt 文件的內(nèi)容與 file2.txt 文件的內(nèi)容一樣,命令執(zhí)行和輸出:

[yiibai@localhost ~]$ cat file1.txt
1001
1002
1003
[yiibai@localhost ~]$ cat file2.txt
1001
1002
1003a
1004
[yiibai@localhost ~]$ diff -ruN file1.txt file2.txt > patch.txt
[yiibai@localhost ~]$ patch file1.txt patch.txt
patching file file1.txt
[yiibai@localhost ~]$ cat file1.txt
1001
1002
1003a
1004
[yiibai@localhost ~]$ cat file2.txt
1001
1002
1003a
1004
[yiibai@localhost ~]$

現(xiàn)在可以看到 file1.txtfile2.txt 文件的內(nèi)容一樣了。


上一篇:ss命令