iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 19
0
自我挑戰組

linux 能力upup系列 第 19

Day19 指令與檔案的搜尋

好啦~講了這麼久的檔案跟目錄,相信大家對linux都有一點是可以認同的,就是資料龐大這一點,那有時候忘記資料方在那裡是一件非常非常尷尬的一件事,因此,要如何從中找到自己要的檔案是一件非常需要被重視的一件事。這個,就是今天的主題。

那我們先從指令檔名的搜尋開始講起吧。

which
(1)尋找執行檔
(2)這個指令是根據PATH這個環境變數所規範的路徑,去搜尋執行檔名檔案名稱
(3)which後面接的是完整的檔案名稱

格式 which (-a) command

相關參數

-a:將所有由PATH目錄中可以找到的指令全部列出,而不是單單只有第一個被找到的指令

接下來就是要講解檔案名稱的搜尋,find 這隻指令不常用,而且非常的操硬碟,所以我不打算介紹它。我這邊會先介紹比較常用的whereis跟locate這兩隻指令,find是在剛剛提到的兩隻指令都找不到東西的時候會用上的。

whereis
(1)由一些特定的目錄中搜尋檔案名稱
(2)主要針對 /bin/sbin底下的執行檔以及/usr/share/man底下的manpage檔案
(3)不會針對全系統去進行查詢
(4)因為以上原因,所以whereis在部分情況會比locate快的原因

格式 whereis (-bmsu) 檔案名稱或目錄名稱

相關參數

-l:可以列出whereis會去查詢的幾個目錄而已
-b:只找binary格式的檔案
-m:只找在說明檔manual路徑下的檔案
-s:只找source來源檔案
-u:搜尋不再上述3個項目當中的特殊檔案

locate
(1)keyword只需要含檔案的部分名稱
(2)搜尋的資料是由已建立的資料庫中進行搜尋
(3)因為(2),所以並不會搜尋到硬碟中的資料
(4)因為(3),所以locate會比find快
(5)當你找不到檔案的時候,記得更新資料庫

格式 locare (-ir) keyword

相關參數

-i:忽略大小寫差異
-c:不輸出檔名,只輸出找到的檔案數量
-l:僅輸出幾行
-S:輸出locate所使用的資料庫檔案的相關資訊,包括該資料庫紀錄的檔案/目錄數量
-r:後面可以接正規表示法的顯示方式

以上就是本人介紹指令與檔案的搜尋的部分,如果有缺漏的部分,也麻煩大家多指教


上一篇
Day18 SUID, SGID, SBIT
下一篇
Day20 檔案壓縮
系列文
linux 能力upup30

尚未有邦友留言

立即登入留言