linux的查找命令
linux系統(tǒng)下的查找命令有很多個(gè),下面由學(xué)習(xí)啦小編為大家整理了linux的查找命令的相關(guān)知識(shí),希望對(duì)大家有幫助!
linux查找命令1、grep
grep(General Regular Expression Parser,通用規(guī)則表達(dá)式分析程序)是一種強(qiáng)大的文本搜索工具,它能使用正則表達(dá)式搜索文本,并把匹配的行打印出來(lái)。
它的使用語(yǔ)法為:
grep [選項(xiàng)] pattern [文件名]
. 匹配任意一個(gè)字符
* 匹配0 個(gè)或多個(gè)*前的字符
^ 匹配行開(kāi)頭
$ 匹配行結(jié)尾
[] 匹配[ ]中的任意一個(gè)字符,[]中可用 - 表示范圍,
例如[a-z]表示字母a 至z 中的任意一個(gè)
\ 轉(zhuǎn)意字符
命令中的選項(xiàng)為:
-b 顯示塊號(hào)
-c 僅顯示各指定文件中包含模式的總行數(shù)
-i 模式中字母不區(qū)分大小寫(xiě)
-h 不將包含模式的文件名顯示在該行上
-l 僅顯示包含模式的文件名
-n 顯示模式所在行的行號(hào)
-s 指定文件若不存在或不可讀,不提示錯(cuò)誤信息
-v 顯示所有不包含模式的行
其中,pattern為所要匹配的字符串。如在/etc/passwd文件下查找包含“carey”字符的行:
$ grep carey /etc/passwd
要用好grep這個(gè)工具,其實(shí)就是要寫(xiě)好正則表達(dá)式,所以這里不對(duì)grep的所有功能進(jìn)行實(shí)例講解,只列幾個(gè)例子,講解一個(gè)正則表達(dá)式的寫(xiě)法。
$ grep 'test' d*
顯示所有以d開(kāi)頭的文件中包含test的行。
$ ls -l | grep '^public'
通過(guò)管道過(guò)濾ls -l輸出的內(nèi)容,只顯示以public開(kāi)頭的行。
后面的^字符強(qiáng)制grep命令只在每行的開(kāi)頭找public。整個(gè)搜索模式(pattern)用單引號(hào)括起來(lái),使shell不理會(huì)它們。shell只將單引號(hào)去掉,將搜索模式送給grep命令。
$ grep -i 'hello world' menu.h main.c
顯示在menu.h和main.c文件中匹配“hello world”的行,忽略大小寫(xiě)。
例如:
grep 'sample' -R *
linux查找命令2、find
find是最常見(jiàn)和最強(qiáng)大的查找命令,你可以用它找到任何你想找的文件。
find的使用格式如下:
find <指定目錄> <指定條件> <指定動(dòng)作>
- <指定目錄>: 所要搜索的目錄及其所有子目錄。默認(rèn)為當(dāng)前目錄。
- <指定條件>: 所要搜索的文件的特征。
- <指定動(dòng)作>: 對(duì)搜索結(jié)果進(jìn)行特定的處理。
如果什么參數(shù)也不加,find默認(rèn)搜索當(dāng)前目錄及其子目錄,并且不過(guò)濾任何結(jié)果(也就是返回所有文件),將它們?nèi)硷@示在屏幕上。
find的使用實(shí)例:
$ find . -name 'my*' –ls
搜索當(dāng)前目錄(含子目錄,下同)中所有文件名以my開(kāi)頭的文件,并顯示它們的詳細(xì)信息。
$ find /home -user rtos
搜索/home下?lián)碛姓邽閞tos的文件
$ find . -type f -mmin -10
搜索當(dāng)前目錄中,在過(guò)去10分鐘中更新過(guò)的所有的普通文件。如果不加-type f參數(shù),則搜索普通文件+特殊文件+目錄。
$ find / -type f -size +100M
查找系統(tǒng)中所有大于100M的文件
說(shuō)明: 如果你要尋找一個(gè)檔案的話,那么使用 find 會(huì)是一個(gè)不錯(cuò)的主意。不過(guò),由于 find 在尋找數(shù)據(jù)的時(shí)候相當(dāng)?shù)暮挠脖P(pán),所以沒(méi)事情不要使用 find 啦!有更棒的指令可以取代呦,那就是 whereis 與 locate 咯~
linux查找命令3、locate
locate命令其實(shí)是“find -name”的另一種寫(xiě)法,但是要比后者快得多,原因在于它不搜索具體目錄,而是搜索一個(gè)數(shù)據(jù)庫(kù)(/var/lib/locatedb),這個(gè)數(shù)據(jù)庫(kù)中含有本地所有文件信息。Linux系統(tǒng)自動(dòng)創(chuàng)建這個(gè)數(shù)據(jù)庫(kù),并且每天自動(dòng)更新一次,所以使用locate命令查不到最新變動(dòng)過(guò)的文件。為了避免這種情況,可以在使用locate之前,先使用updatedb命令,手動(dòng)更新數(shù)據(jù)庫(kù)。
locate命令的使用實(shí)例:
$ locate /etc/sh
搜索etc目錄下所有以sh開(kāi)頭的文件。
$ locate -i ~/m
搜索用戶主目錄下,所有以m開(kāi)頭的文件,并且忽略大小寫(xiě)。
linux查找命令4、whereis
whereis命令只能用于程序名的搜索,而且只搜索二進(jìn)制文件(參數(shù)-b)、man說(shuō)明文件(參數(shù)-m)和源代碼文件(參數(shù)-s)。如果省略參數(shù),則返回所有信息。
whereis命令的使用實(shí)例:
$ whereis grep
grep: /bin/grep /usr/share/man/man1p/grep.1p.gz /usr/share/man/man1/grep.1.gz
linux查找命令5、which
which命令的作用是,在PATH變量指定的路徑中,搜索某個(gè)系統(tǒng)命令的位置,并且返回第一個(gè)搜索結(jié)果。也就是說(shuō),使用which命令,就可以看到某個(gè)系統(tǒng)命令是否存在,以及執(zhí)行的到底是哪一個(gè)位置的命令。
which命令的使用實(shí)例:
$ which grep
/bin/grep
linux的查找命令
上一篇:linux的幫助命令
下一篇:linux的復(fù)制命令