Linux查詢檔案的相關命令

2021-04-30 08:50:47 字數 4107 閱讀 5777

**自:

more [檔名]

分頁顯示乙個檔案或任何輸出結果

其實more不是用來尋找檔案的,但是一般人卻十有**是在找檔案時把它派上用場。

因為 more 主要的作用是把輸出結果顯示在螢幕上,一頁停止一次,所以例如當我們用 ls 命令去找乙個 x字母開頭的檔案,而下達了 ls x* 卻仍然列出太多檔案,乙個螢幕看不完時,就可以配合管道符號和 more 命令:

ls x* | more

它會一屏停止一下,等待您按空白鍵才繼續往上捲。於是 more 儼然猶如 dos 的 dir 命令 /p 選項的地位了。而 more 當主角的時候,是用做一頁一次顯示文章,例如我們想要看 /etc 裡面的 xf86config 檔案,可以下如下命令:

more /etc/xf86config

pico /etc/xf86config

到最後,很少人再用more了。所以more經常配合 ls在找檔案的場合出現,每天都可以上場十幾次。

所以,相信把失去主要舞台的 more歸類為找尋檔案的相關命令雖不合法,但合情合理也合於現狀。

練習:請您用 more 去看乙個文字檔案,與用 pico 去看乙個文字檔案相比較,哪乙個比較方便?

less [檔名]

分頁顯示乙個檔案並且可以回頭

less命令很好笑,取名時就故意與more 命令打對臺,你叫「更多」,我就叫「更少」,就好像你叫黑人牙膏我就叫白人牙膏一樣。事實上與什麼「更多」、「更少」都沒有關係。它最主要只是為了改進一點:more 不能回頭看的問題!

less 的優點就是可以隨時回頭,最簡單的用【pgup】鍵就可以向上翻。

所以,為了您好,選項我們也不介紹了。這個命令目前只在 linux 系統可以使用,其他 unix 家族尚無。

練習:(1)請您用 less 去看乙個文字檔案,與用 pico 去看乙個文字檔案相比,哪乙個比較方便?

(2)less命令能像more命令一樣配合管道符號,讓ls的列示檔案能夠回頭翻看嗎?

whereis 檔名

尋找檔案工具

whereis 是乙個小巧好用的檔案尋找工具,它專門用來尋找可執行的程式、原始程式和使用手冊。

例如執行命令:

whereis bzip2

它就會告訴您,bzip2 放在 /usr/bin 。通常,如果您確定某個東西是程式,而用 whereis 找不到的話,那就表示本系統沒有安裝該程式了,例如:

whereis cjoe

表示這套系統中沒有裝 cjoe,否則應該會找到才對。

練習:(1)找找您的系統上有沒有xpaint這個程式?因為這個程式在 kde 和 gnome 的預設主選單上都沒有列出來,但並不表示一定沒有。

(2)能用 whereis 命令去找到xf86config設定檔案在**嗎?為什麼?

find [尋找的目錄] [表示式]

尋找檔案工具

find 是高階的尋找檔案工具,可不像 whereis 那麼「陽春白雪」。但也因為它太高階了,複雜到很多人用不熟練。我們盡量只舉簡單的例子。

最簡單的格式如下:

find / -name my* -print

這個意思是請它從最底層的主目錄開始找,找出檔名是 my 開頭的檔案,把它顯示出來。-print 選項是顯示,您可把它當做固定要加上的專案。

但它還可以用時間來找,例如:

find /usr -atime 3 –print

會從 /usr 目錄開始往下找,找最近3天之內訪問過的檔案。

find /usr -ctime 5 –print

會從 /usr 目錄開始往下找,找最近5天之內修改過的檔案。

find /doc -user jacky -name 'j*' –print

會從 /doc 目錄開始往下找,找jacky 的、檔名開頭是 j的檔案。

find /doc /( -name 'ja*' -o- -name 'ma*' /) –print

會從 /doc 目錄開始往下找,找尋檔名是 ja 開頭或者 ma開頭的檔案。

find /doc -name '*bak' -exec rm {} /;

會從 /doc 目錄開始往下找,找到凡是檔名結尾為 bak的檔案,把它刪除掉。-exec 選項是執行的意思,rm 是刪除命令, 表示檔名,「/;」是規定的命令結尾。

練習:用 find 命令能否找出xf86config這個檔案在**?

locate 檔名

尋找檔案工具

locate 也是乙個尋找檔案的工具,但是它不像 whereis 只能找程式檔案等幾種檔案,也不像find那麼複雜,可以算是「中庸之道」!

中庸之道,往往就是大部分人最佳的選擇,如圖2-32所示。

圖2-32 3種尋找檔案命令的對比

whereis找不到的檔案,find要一大串命令,還花了很久的時間才找到的xf86config設定檔案,而用locate一下子就簡單找到了!

練習:(1)用 locate 找找有沒有乙個inittab檔案?

(2)用 locate 找找有哪些 .pcf 字形檔案。如果找不到的話,找找看已經壓縮過的字形檔案 .pcf.z 或者 .pcf.gz。

grep [-選項] [字串] [檔名]

尋找某字串內容工具

有些時候,我們儲存檔案時隨手亂取了乙個檔名,事後自己都忘了那個檔案名叫什麼,連開頭第乙個字母都想不起來。那麼,如果您還記得該檔案一點特殊的詞語,應該可以用 grep 命令找到。

例如,我們想在乙個目錄的200個檔案裡面,找出哪乙個檔案提到「排版」這個詞語:

grep 排版 *.txt

找到了兩個檔案有此字樣。然後您再自行調出看看到底哪一篇才是您所要的即可。尋找時注意盡量尋找特殊詞語,如果您輸入「然後」、「這樣」、「不是」、「電腦」……這類太普遍的詞語,可能幾百篇文章中都有,那就失去了用 grep 找檔案的意義了。

因為例子中第二篇文章出現了兩次,所以列出了3行,其實只有兩個檔案符合。如果您想要讓它凡是符合條件的只出現一次的話,加上 -l 選項就可以了,如圖2-33所示。

圖2-33 增加-l選項後的grep命令

其他常用的選項還有:

-n 同時列出該詞語出現在文章的第幾行。

-c 計算一下該字串出現的次數。

-i 比對的時候,不計較大小寫的不同。

練習:當我們要為系統增加乙個使用者時,往往擔心新增乙個已經存在的使用者名字。如果用 grep 命令,可不可以避免這個問題?如何避免?

env

檢視環境設定

env 命令可以設定很多環境變數,例如終端機的型別、使用的瀏覽器、使用者主目錄(home directory)的所在等等。

但是我們現在把焦點集中在其中一項:path環境變數。

因為 path 這個環境變數掌管了您下達命令的時候,它會到下面幾個目錄去找您命令的程式:

/usr/bin

/sbin

/usr/sbin

/usr/x11r6/bin

/root/bin

那麼您用 env 命令,讓它把所有的環境變數列出來的時候,就可以看到有一行path 設定,把上述幾個目錄用分號分開,然後串成一串。這就是它所謂尋找命令的「路徑」。dos 系統也有乙個同名而且意義非常相似的路徑設定。如圖2-34所示。

圖2-34 執行env命令

如果您想在它查詢命令的路徑上增加乙個 /usr/bin/he,而把 /root/bin 去掉,那麼您可以重新下達:

env path=/usr/bin;/sbin;/usr/sbin;/usr/x11r6/bin;/usr/bin/he

當然env 其他的變數也可以這樣改變。但是因為涉及面太廣,我們就只把焦點集中在改變查詢路徑上,其他暫時不談。

練習:用env命令改變您預設的瀏覽器。

Linux查詢檔案的相關命令

linux查詢檔案的相關命令如表2 7所示。表2 7 linux查詢檔案的相關命令說明常用 命令簡要中文說明 程式所在目錄 more 分頁顯示乙個檔案或任何輸出結果 bin less 分頁顯示乙個檔案並且可以回頭 usr bin whereis 尋找檔案工具 usr bin find 尋找檔案工具 ...

linux查詢檔案命令

在使用linux時,經常需要進行檔案查詢。其中查詢的命令主要有find和grep。兩個命令是有區的。區別 1 find命令是根據檔案的屬性進行查詢,如檔名,檔案大小,所有者,所屬組,是否為空,訪問時間,修改時間等。2 grep是根據檔案的內容進行查詢,會對檔案的每一行按照給定的模式 patter 進...

linux 查詢檔案命令

linux下檔案搜尋 查詢 檢視命令 1 最強大的搜尋命令 find 查詢各種檔案的命令 2 在檔案資料中查詢檔案 locate 3 搜尋命令所在的目錄及別名資訊 which 4 搜尋命令所在的目錄及幫助文件路徑 whereis5 在檔案中搜尋字串匹配的行並輸出 grep6 分頁顯示乙個檔案或任何輸...