【應(yīng)用】Linux查找文件的相關(guān)命令
Posted on 2007-08-30 17:55 kooyee 閱讀(318) 評(píng)論(0) 編輯 收藏 所屬分類: Lniux/Unix表2-7 Linux查找文件的相關(guān)命令說明
常 用 命 令 |
簡(jiǎn)要中文說明 |
程序所在目錄 |
more |
分頁顯示一個(gè)文件或任何輸出結(jié)果 |
/bin |
less |
分頁顯示一個(gè)文件并且可以回頭 |
/usr/bin |
whereis |
尋找文件工具 |
/usr/bin |
find |
尋找文件工具 |
/usr/bin |
locate |
尋找文件工具 |
/usr/bin |
grep |
尋找某字串內(nèi)容工具 |
/bin |
env |
查看環(huán)境設(shè)置 |
/usr/bin |
more [文件名]
分頁顯示一個(gè)文件或任何輸出結(jié)果
其實(shí)more不是用來尋找文件的,但是一般人卻十有八九是在找文件時(shí)把它派上用場(chǎng)。
因?yàn)?more 主要的作用是把輸出結(jié)果顯示在屏幕上,一頁停止一次,所以例如當(dāng)我們用 ls 命令去找一個(gè) x字母開頭的文件,而下達(dá)了 ls x* 卻仍然列出太多文件,一個(gè)屏幕看不完時(shí),就可以配合管道符號(hào)和 more 命令:
ls x* | more
它會(huì)一屏停止一下,等待您按空白鍵才繼續(xù)往上卷。于是 more 儼然猶如 DOS 的 DIR 命令 /P 選項(xiàng)的地位了。而 more 當(dāng)主角的時(shí)候,是用做一頁一次顯示文章,例如我們想要看 /etc 里面的 XF86Config 文件,可以下如下命令:
more /etc/XF86Config
這樣,我們就可以不斷按空白鍵把這個(gè)文件慢慢看完。但是,因?yàn)閙ore 先天的設(shè)計(jì),如果您看完了這頁,想要回頭看上一頁,很抱歉,是不行的,您必須從頭再來!于是大家在使用中就干脆摒棄這個(gè)命令,而代之以 vi 或者pico, joe等文書編輯器來看文字文件了!
pico /etc/XF86Config
到最后,很少人再用more了。所以more經(jīng)常配合 ls在找文件的場(chǎng)合出現(xiàn),每天都可以上場(chǎng)十幾次。
所以,相信把失去主要舞臺(tái)的 more歸類為找尋文件的相關(guān)命令雖不合法,但合情合理也合于現(xiàn)狀。
練習(xí):
請(qǐng)您用 more 去看一個(gè)文字文件,與用 pico 去看一個(gè)文字文件相比較,哪一個(gè)比較方便?
less [文件名]
分頁顯示一個(gè)文件并且可以回頭
less命令很好笑,取名時(shí)就故意與more 命令打?qū)ε_(tái),你叫“更多”,我就叫“更少”,就好像你叫黑人牙膏我就叫白人牙膏一樣。事實(shí)上與什么“更多”、“更少”都沒有關(guān)系。它最主要只是為了改進(jìn)一點(diǎn):more 不能回頭看的問題!
less 的優(yōu)點(diǎn)就是可以隨時(shí)回頭,最簡(jiǎn)單的用【PgUp】鍵就可以向上翻。
可是依我們的孤陋之見,還是用文書編輯器去閱讀文件就好了嘛,更何況 less 本身還有高達(dá) 42 個(gè)選項(xiàng),何必那么麻煩!
所以,為了您好,選項(xiàng)我們也不介紹了。這個(gè)命令目前只在 Linux 系統(tǒng)可以使用,其他 UNIX 家族尚無。
練習(xí):
?。?)請(qǐng)您用 less 去看一個(gè)文字文件,與用 pico 去看一個(gè)文字文件相比,哪一個(gè)比較方便?
?。?)less命令能像more命令一樣配合管道符號(hào),讓ls的列示文件能夠回頭翻看嗎?
whereis 文件名
尋找文件工具
whereis 是一個(gè)小巧好用的文件尋找工具,它專門用來尋找可執(zhí)行的程序、原始程序和使用手冊(cè)。
例如執(zhí)行命令:
whereis bzip2
它就會(huì)告訴您,bzip2 放在 /usr/bin 。通常,如果您確定某個(gè)東西是程序,而用 whereis 找不到的話,那就表示本系統(tǒng)沒有安裝該程序了,例如:
whereis cjoe
表示這套系統(tǒng)中沒有裝 cjoe,否則應(yīng)該會(huì)找到才對(duì)。
練習(xí):
?。?)找找您的系統(tǒng)上有沒有xpaint這個(gè)程序?因?yàn)檫@個(gè)程序在 KDE 和 GNOME 的默認(rèn)主菜單上都沒有列出來,但并不表示一定沒有。
(2)能用 whereis 命令去找到XF86Config設(shè)置文件在哪里嗎?為什么 ?
find [尋找的目錄] [表示式]
尋找文件工具
find 是高級(jí)的尋找文件工具,可不像 whereis 那么“陽春白雪”。但也因?yàn)樗呒?jí)了,復(fù)雜到很多人用不熟練。我們盡量只舉簡(jiǎn)單的例子。
最簡(jiǎn)單的格式如下:
find / -name my* -print
這個(gè)意思是請(qǐng)它從最底層的主目錄開始找,找出文件名是 my 開頭的文件,把它顯示出來。-print 選項(xiàng)是顯示,您可把它當(dāng)做固定要加上的項(xiàng)目。
但它還可以用時(shí)間來找,例如:
find /usr -atime 3 –print
會(huì)從 /usr 目錄開始往下找,找最近3天之內(nèi)存取過的文件。
find /usr -ctime 5 –print
會(huì)從 /usr 目錄開始往下找,找最近5天之內(nèi)修改過的文件。
find /doc -user jacky -name 'j*' –print
會(huì)從 /doc 目錄開始往下找,找jacky 的、文件名開頭是 j的文件。
find /doc \( -name 'ja*' -o- -name 'ma*' \) –print
會(huì)從 /doc 目錄開始往下找,找尋文件名是 ja 開頭或者 ma開頭的文件。
find /doc -name '*bak' -exec rm {} \;
會(huì)從 /doc 目錄開始往下找,找到凡是文件名結(jié)尾為 bak的文件,把它刪除掉。-exec 選項(xiàng)是執(zhí)行的意思,rm 是刪除命令,{ } 表示文件名,“\;”是規(guī)定的命令結(jié)尾。
練習(xí):
用 find 命令能否找出XF86Config這個(gè)文件在哪里
locate 文件名
尋找文件工具
locate 也是一個(gè)尋找文件的工具,但是它不像 whereis 只能找程序文件等幾種文件,也不像find那么復(fù)雜,可以算是“中庸之道”!
中庸之道,往往就是大部分人最佳的選擇,如圖2-32所示。
![]() 圖2-32 3種尋找文件命令的對(duì)比 |
whereis找不到的文件,find要一大串命令,還花了很久的時(shí)間才找到的XF86Config設(shè)置文件,而用locate一下子就簡(jiǎn)單找到了!
練習(xí):
(1)用 locate 找找有沒有一個(gè)inittab文件?
?。?)用 locate 找找有哪些 .pcf 字形文件。如果找不到的話,找找看已經(jīng)壓縮過的字形文件 .pcf.Z 或者 .pcf.gz。
grep [-選項(xiàng)] [字串] [文件名]
尋找某字串內(nèi)容工具
有些時(shí)候,我們存儲(chǔ)文件時(shí)隨手亂取了一個(gè)文件名,事后自己都忘了那個(gè)文件名叫什么,連開頭第一個(gè)字母都想不起來。那么,如果您還記得該文件一點(diǎn)特殊的詞語,應(yīng)該可以用 grep 命令找到。
例如,我們想在一個(gè)目錄的200個(gè)文件里面,找出哪一個(gè)文件提到“排版”這個(gè)詞語:
grep 排版 *.txt
找到了兩個(gè)文件有此字樣。然后您再自行調(diào)出看看到底哪一篇才是您所要的即可。尋找時(shí)注意盡量尋找特殊詞語,如果您輸入“然后”、“這樣”、“不是”、“電腦”……這類太普遍的詞語,可能幾百篇文章中都有,那就失去了用 grep 找文件的意義了。
因?yàn)槔又械诙恼鲁霈F(xiàn)了兩次,所以列出了3行,其實(shí)只有兩個(gè)文件符合。如果您想要讓它凡是符合條件的只出現(xiàn)一次的話,加上 -l 選項(xiàng)就可以了,如圖2-33所示。
![]() 圖2-33 增加-l選項(xiàng)后的grep命令 |
其他常用的選項(xiàng)還有:
-n 同時(shí)列出該詞語出現(xiàn)在文章的第幾行。
-c 計(jì)算一下該字串出現(xiàn)的次數(shù)。
-i 比對(duì)的時(shí)候,不計(jì)較大小寫的不同。
練習(xí):
當(dāng)我們要為系統(tǒng)增加一個(gè)用戶時(shí),往往擔(dān)心添加一個(gè)已經(jīng)存在的用戶名字。如果用 grep 命令,可不可以避免這個(gè)問題?如何避免 ?
env
查看環(huán)境設(shè)置
env 命令可以設(shè)置很多環(huán)境變量,例如終端機(jī)的類型、使用的瀏覽器、用戶主目錄(Home Directory)的所在等等。
但是我們現(xiàn)在把焦點(diǎn)集中在其中一項(xiàng):PATH環(huán)境變量。
因?yàn)?PATH 這個(gè)環(huán)境變量掌管了您下達(dá)命令的時(shí)候,它會(huì)到下面幾個(gè)目錄去找您命令的程序:
/usr/bin
/sbin
/usr/sbin
/usr/X11R6/bin
/root/bin
那么您用 env 命令,讓它把所有的環(huán)境變量列出來的時(shí)候,就可以看到有一行PATH 設(shè)置,把上述幾個(gè)目錄用分號(hào)分開,然后串成一串。這就是它所謂尋找命令的“路徑”。DOS 系統(tǒng)也有一個(gè)同名而且意義非常相似的路徑設(shè)置。如圖2-34所示。
![]() 圖2-34 執(zhí)行env命令 |
如果您想在它查找命令的路徑上增加一個(gè) /usr/bin/he,而把 /root/bin 去掉,那么您可以重新下達(dá):
env PATH=/usr/bin;/sbin;/usr/sbin;/usr/X11R6/bin;/usr/bin/he
當(dāng)然env 其他的變量也可以這樣改變。但是因?yàn)樯婕懊嫣珡V,我們就只把焦點(diǎn)集中在改變查找路徑上,其他暫時(shí)不談。
練習(xí):
用env命令改變您默認(rèn)的瀏覽器