如何使用Shell遍歷目錄及其子目錄中的所有文件?
創(chuàng)建新的外殼文件。
輸入以下代碼
執(zhí)行指令
grep與find的區(qū)別?
使用linux時(shí),經(jīng)常需要查找文件。其中find和grep是主要命令。這兩個(gè)命令有所不同。
差異:
(1)查找命令是根據(jù)文件的屬性進(jìn)行查找,如文件名、文件大小、所有者、所屬組、是否為空、訪問時(shí)間、修改時(shí)間等。
(2)grep根據(jù)文件的內(nèi)容進(jìn)行搜索,按照給定的模式匹配文件的每一行。
以下是對(duì)兩者區(qū)別的詳細(xì)解釋:
查找命令:
基本格式:findpath表達(dá)式
1.按文件名搜索
(1)find/-name#在根目錄中查找文件,也就是搜索整個(gè)硬盤。
(2)在/etc目錄中找到/etc-name#文件。
(3)find/etc-name#39*srm*#39#使用通配符*(0或任何倍數(shù))。意思是用字符串SRM在/etc目錄下的文件名中。
(4)尋找。-name#39srm*#39#表示查找文件名以字符串SRM在當(dāng)前目錄中。
2.根據(jù)文件特征搜索
(1)find/-amin-10#查找系統(tǒng)中最近10分鐘內(nèi)訪問過的文件(訪問時(shí)間)。
(2)find/-atime-2#查找系統(tǒng)中最近48小時(shí)內(nèi)訪問過的文件。
(3)find/-empty#查找系統(tǒng)中為空的文件或文件夾。
(4)find/-groupcat#查找系統(tǒng)中組為cat的文件。
(5)find/-mmin-5#在系統(tǒng)中查找最近5分鐘內(nèi)修改的文件(修改時(shí)間)
(6)find/-mtime-1#查找系統(tǒng)中最近24小時(shí)內(nèi)修改的文件。
(7)find/-userfred#在系統(tǒng)中查找屬于用戶fred的文件。
(8)find/-size10000c#找出大于10000000字節(jié)的文件,(c:字節(jié),w:,:KB,M:MB,:GB)。
(9)find/-size-1000k#找出小于1000KB的文件。
3.使用混合搜索方法查找文件
參數(shù)是:!,-和(-a),-或(-o).
(1)查找/tmp-size10000c-and-mtim:。
基本格式:查找表達(dá)式
1.主要參數(shù)
[選項(xiàng)]主要參數(shù):
-c:只輸出匹配行數(shù)。-i:不區(qū)分大小寫。
-h:查詢多個(gè)文件時(shí)不顯示文件名。
-l:查詢多個(gè)文件時(shí),只輸出包含匹配字符的文件名。
-n:顯示匹配的行和行號(hào)。
-s:不顯示不存在或沒有匹配文本的錯(cuò)誤消息。
-v:顯示不包含匹配文本的所有行。
模式正則表達(dá)式的主要參數(shù):
:忽略正則表達(dá)式殊字符的本義。
:匹配正則表達(dá)式的起始行。
$:匹配正則表達(dá)式的結(jié)束行。
Lt:從匹配正則表達(dá)式的那一行開始。
Gt:匹配正則表達(dá)式的行尾。
【】:單字符,如【A】,即A符合要求。
[-]:range,比如[A-Z],即A,B,C,Z都滿足要求。
。:所有單個(gè)字符。
*:有字符,長(zhǎng)度可以為0。
第二步:例子
(1)grep#39test#39d*#顯示以d開頭的文件中包含test的所有行
(2)grep;測(cè)試與測(cè)試。;aabbcc#顯示aa、bb和cc文件中包含測(cè)試的行。
(3)grep;{5}aa#顯示包含每行至少有5個(gè)連續(xù)小寫字符的字符串的所有行。
(4)grepmagic/usr/src#顯示/usr/src目錄(不包括子目錄)中的文件包含魔線。
(5)grep-rmagic/usr/src#顯示包含magic的/usr/src目錄下的文件(包括子目錄)中的行。
(6)grep-w模式文件:只匹配整個(gè)單詞,不匹配部分字符串(如matching魔術(shù)與表演。;而不是神奇的)