<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > Linux基礎命令之: Linux常用命令

Linux基礎命令之: Linux常用命令

作者: 時(shí)間:2013-09-13 來(lái)源:網(wǎng)絡(luò ) 收藏

本文引用地址:http://dyxdggzs.com/article/257158.htm

2.1.4文件比較合并相關(guān)命令

1.diff

(1)作用。

比較兩個(gè)不同的文件或不同目錄下的兩個(gè)同名文件功能,并生成補丁文件。

(2)格式。

diff[選項]文件1文件2

diff比較文件1和文件2的不同之處,并按照選項所指定的格式加以輸出。diff的格式分為命令格式和上下文格式,其中上下文格式又包括了舊版上下文格式和新版上下文格式,命令格式分為標準命令格式、簡(jiǎn)單命令格式及混合命令格式,它們之間的區別會(huì )在使用實(shí)例中進(jìn)行詳細講解。當選項缺省時(shí),diff默認使用混合命令格式。

(3)主要參數。

diff主要選項參數如表2.26所示。

表2.26 diff命令常見(jiàn)參數列表

選項

參數含義

-r

對目錄進(jìn)行遞歸處理

-q

只報告文件是否有不同,不輸出結果

-e,-ed

命令格式

-f

RCS(修訂控制系統)命令簡(jiǎn)單格式

-c,--context

舊版上下文格式

-u,--unified

新版上下文格式

-Z

調用compress來(lái)壓縮歸檔文件,與-x聯(lián)用時(shí)調用compress完成解壓縮

(4)使用實(shí)例。

以下有兩個(gè)文件hello1.c和hello2.c。

/*hello1.c*/

#includestdio.h>

voidmain()

{

printf(Hello!Thisismyhome!n);

}

/*hello2.c*/

#includestdio.h>

voidmain()

{

printf(Hello!Thisisyourhome!n);

}

以下實(shí)例主要講解了各種不同格式的比較和補丁文件的創(chuàng )建方法。

①主要格式比較。

首先使用舊版上下文格式進(jìn)行比較。

[root@localhostdavid]#diff-chello1.chello2.c

***hello1.cSatJan1416:24:512006

---hello2.cSatJan1416:54:412006

***************

***1,5****

#includestdio.h>

voidmain()

{

!printf(Hello!Thisismyhome!n);

}

---1,5----

#includestdio.h>

voidmain()

{

!printf(Hello!Thisisyourhome!n);

}

可以看出,用舊版上下文格式進(jìn)行輸出時(shí),在顯示每個(gè)有差別行的同時(shí)還顯示該行的上下3行,區別的地方用“!”加以標出,由于示例程序較短,上下3行已經(jīng)包含了全部代碼。

接著(zhù)使用新版的上下文格式進(jìn)行比較。

[root@localhostdavid]#diff-uhello1.chello2.c

---hello1.cSatJan1416:24:512006

+++hello2.cSatJan1416:54:412006

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

#includestdio.h>

voidmain()

{

-printf(Hello!Thisismyhome!n);

+printf(Hello!Thisisyourhome!n);

}

可以看出,在新版上下文格式輸出時(shí),僅把兩個(gè)文件的不同之處分別列出,而相同之處沒(méi)有重復列出,這樣大大方便了用戶(hù)的閱讀。

接下來(lái)使用命令格式進(jìn)行比較。

[root@localhostdavid]#diff-ehello1.chello2.c

4c

printf(Hello!Thisisyourhome!n);

可以看出,命令符格式輸出時(shí)僅輸出了不同的行,其中命令符“4c”中的數字表示行編號,字母的含義為:a表示添加,b表示刪除,c表示更改。因此,-e選項的命令符表示:若要把hello1.c變?yōu)閔ello2.c,就需要把hello1.c的第4行改為顯示出的“printf(“Hello!Thisisyourhome!n”);”。

選項“-f”和選項“-e”顯示的內容基本相同,就是數字和字母的順序相交換了,從以下的輸出結果可以看出。

[root@localhostdavid]#diff-fhello1.chello2.c

c4

printf(Hello!Thisisyourhome!n);

在diff選項缺省的情況下,輸出結果如下所示。

[root@localhostdavid]#diffhello1.chello2.c

4c4

printf(Hello!Thisismyhome!n);

---

>printf(Hello!Thisisyourhome!n);

可以看出,diff缺省情況下的輸出格式充分顯示了如何將hello1.c轉化為hello2.c,即通過(guò)“4c4”實(shí)現。

②創(chuàng )建補丁文件(也就是差異文件)是diff的功能之一,不同的選項格式可以生成與之相對應的補丁文件,如下面扔例子所示。

[root@localhostdavid]#diffhello1.chello2.c>hello.patch

[root@localhostdavid]#vihello.patch

4c4

printf(Hello!Thisismyhome!n);

---

>printf(Hello!Thisisyourhome!n);

可以看出,使用缺省選項創(chuàng )建補丁文件的內容和前面使用缺省選項的輸出內容是一樣的。

小知識

上例中所使用的”>“是輸出重定向。通常在上執行一個(gè)shell命令行時(shí),會(huì )自動(dòng)打開(kāi)3個(gè)標準文件:標準輸入文件(stdin),即通常對應終端的鍵盤(pán);標準輸出文件(stdout)和標準錯誤輸出文件(stderr),前兩個(gè)文件都對應終端的屏幕。進(jìn)程將從標準輸入文件中得到輸入數據,并且將正常輸出數據輸出到標準輸出文件,而將錯誤信息送到標準錯誤文件中。這就是通常使用的標準輸入/輸出方式。

直接使用標準輸入/輸出文件存在以下問(wèn)題:首先,用戶(hù)輸入的數據只能使用一次。當下次希望再次使用這些數據時(shí)就不得不重新輸入。同樣,用戶(hù)對輸出信息不能做更多的處理,只能等待程序的結束。

為了解決上述問(wèn)題,系統為輸入、輸出的信息傳送引入了兩種方式:輸入/輸出重定向機制和管道(在1.3.1的小知識中已有介紹)。其中,輸入重定向是指把命令(或可執行程序)的標準輸入重定向到指定的文件中。也就是說(shuō),輸入可以不來(lái)自鍵盤(pán),而來(lái)自一個(gè)指定的文件。同樣,輸出重定向是指把命令(或可執行程序)的標準輸出或標準錯誤輸出重新定向到指定文件中。這樣,該命令的輸出就可以不顯示在屏幕上,而是寫(xiě)入到指定文件中。就如上述例子中所用到的把“diffhello1.chello2.c”的結果重定向到hello.patch文件中。這就大大增加了輸入/輸出的靈活性。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>