find與grep命令簡(jiǎn)介及正則表達(dá)式

find與grep命令簡(jiǎn)介及正則表達(dá)式

ID:30360940

大小:85.99 KB

頁(yè)數(shù):16頁(yè)

時(shí)間:2018-12-29

find與grep命令簡(jiǎn)介及正則表達(dá)式_第1頁(yè)
find與grep命令簡(jiǎn)介及正則表達(dá)式_第2頁(yè)
find與grep命令簡(jiǎn)介及正則表達(dá)式_第3頁(yè)
find與grep命令簡(jiǎn)介及正則表達(dá)式_第4頁(yè)
find與grep命令簡(jiǎn)介及正則表達(dá)式_第5頁(yè)
資源描述:

《find與grep命令簡(jiǎn)介及正則表達(dá)式》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。

1、find與grep命令簡(jiǎn)介及正則表達(dá)式寫(xiě)給大家看的Shell腳本編程入門(mén)教程索引兩個(gè)更為有用的命令和正則表達(dá)式在我們開(kāi)始學(xué)習(xí)新的Shell編程知識(shí)之前,我們先來(lái)看一下兩個(gè)更為有用的兩個(gè)命令,這兩個(gè)命令雖然并不是Shell的一部分,但是在進(jìn)行Shell編程時(shí)卻會(huì)經(jīng)常用到.隨后我們會(huì)來(lái)看一下正則表達(dá)式.find命令我們先來(lái)看的是find命令.這個(gè)命令對(duì)于我們用來(lái)查找文件時(shí)是相當(dāng)有用的,但是對(duì)于Linux新手來(lái)說(shuō)卻有一些難于使用,在一定程序是由于他所帶的選項(xiàng),測(cè)試,動(dòng)作類型參數(shù),而且一個(gè)參數(shù)的執(zhí)行結(jié)果會(huì)影響接下來(lái)的參

2、數(shù).在我們深入這些選項(xiàng)和參數(shù)之前,我們先來(lái)看一個(gè)非常簡(jiǎn)單的例子.假如在我們的機(jī)子上有一個(gè)文件wish.我們來(lái)進(jìn)行這個(gè)操作時(shí)要以root身份來(lái)運(yùn)行,這樣就可以保證我們可以搜索整個(gè)機(jī)子:#find/-namewish-print/usr/bin/wish#正如我們可以想到的,他會(huì)打印出搜索到的結(jié)果.很簡(jiǎn)單,是不是?然而,他卻需要一定的時(shí)間來(lái)運(yùn)行,因?yàn)樗矔?huì)同時(shí)搜索網(wǎng)絡(luò)上的Window機(jī)器上的磁盤(pán).Linux機(jī)器會(huì)掛載大塊的Window機(jī)器的文件系統(tǒng).他也會(huì)同時(shí)那些位置,雖然我們知道我們要查找的文件位于Linux機(jī)器

3、上.這也正是第一個(gè)選項(xiàng)的用武之地.如果我們指定了-mount選項(xiàng),我們就可以告訴find命令不要搜索掛載的目錄.#find/-mount-namewish-print/usr/bin/wish#這樣我們?nèi)匀豢梢运阉鬟@個(gè)文件,但是這一次并沒(méi)有搜索掛載的文件系統(tǒng).find命令的完整語(yǔ)法如下:find[path][options][tests][actions]path是一個(gè)很簡(jiǎn)單的部分:我們可以使用絕對(duì)路徑,例如/bin,或者是使用相對(duì)路徑,例如..如果我們需要我們還可以指定多個(gè)路徑,例如find/var/home

4、主要的一些選項(xiàng)如下:-depth在查看目錄本身以前要先搜索目錄中的內(nèi)容-follow跟隨符號(hào)鏈接-maxdepthsN在搜索一個(gè)目錄時(shí)至多搜索N層-mount(或-xdev)不要搜索其他的文件系統(tǒng)下面的是一些test的選項(xiàng).我們可以為find命令指定大量的測(cè)試,并且每一個(gè)測(cè)試會(huì)返回真或是假.當(dāng)find命令工作時(shí),他會(huì)考查順序查找到的文件,并且會(huì)在這個(gè)文件上按順序進(jìn)行他們所定義的測(cè)試.如果一個(gè)測(cè)試返回假,find命令會(huì)停止他當(dāng)前正在考查的文件并繼續(xù)進(jìn)行下面的動(dòng)作.我們?cè)谙卤碇辛谐龅闹皇且恍┪覀冏畛S玫降臏y(cè)試,我們

5、可以通過(guò)查看手冊(cè)頁(yè)得到我們可以利用find命令使用的可能的擴(kuò)展列表項(xiàng).-atimeNN天以前訪問(wèn)的文件-mtimeNN天以前修改的文件-namepattern除了路徑,與指定的類型匹配的文件名.為了保證指定的類型傳遞給find命令而并不是立即被Shell賦值,指定的類型必須用引號(hào)進(jìn)行引用.-newerotherfile與otherfile文件相比要新的文件-typeCC類型的文件,而這里的C可以指定的一種類型.最常用的是d代表目錄,而f是指普通的文件.對(duì)于其他的文件類型,我們可以查看手冊(cè)頁(yè).-userusern

6、ame指定的用戶所擁有的文件我們也可以使用運(yùn)算符進(jìn)行測(cè)試的組合.大多數(shù)的有兩種格式:短格式和長(zhǎng)格式.!-not測(cè)試的反-a-and所有的測(cè)試必須為真-o-or測(cè)試中某一個(gè)為真我們可以使用括號(hào)來(lái)強(qiáng)行改變測(cè)試和運(yùn)算符的次序.因?yàn)檫@些對(duì)于Shell來(lái)說(shuō)有著特殊的意義,所以我們也需要使用反斜線將他們作為一個(gè)整體進(jìn)行引用.另外,如果我們?yōu)槲募付似ヅ漕愋?我們也必須用引號(hào)進(jìn)行引用,這樣就可以避免他們被Shell進(jìn)行擴(kuò)展,從而可以將他們直接傳遞給find命令.所以如果我們要寫(xiě)一個(gè)這樣的測(cè)試,要查找比X文件要近或者是以一

7、個(gè)范圍開(kāi)頭的文件,我們要寫(xiě)成下面的形式:1.(-newerX-o-name"_*")復(fù)制代碼現(xiàn)在我們要試著在當(dāng)前的目錄下查找最近修改日期比while2更近的文件,我們可以用下面的命令:$find.-newerwhile2-print../elif3./words.txt./words2.txt./_trap$我們?cè)谏厦嫠玫拿羁雌饋?lái)似乎不錯(cuò),但是我們卻同時(shí)也搜索了當(dāng)前的目錄文件,而這并不是我們所希望的,我們所感興趣只是常規(guī)文件.所以我們可以加上另外一個(gè)測(cè)試-typef:$find.-newerwhile2

8、-typef-print./elif3./words.txt./words2.txt./_trap$工作原理:這些命令是如何進(jìn)行工作的呢?我們指定find命令應(yīng)該在當(dāng)前的目錄下進(jìn)行查找(.),而我們所要查找的是比while2更新的文件(-newerwhile2),而且如果已經(jīng)傳遞了測(cè)試,還要測(cè)試這個(gè)文件是否為一個(gè)常規(guī)文件(-type-f).最后,我們使用我們以前用過(guò)的動(dòng)作,-print

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。