Linux下比find快N倍的檔案查詢命令

2021-07-09 13:37:16 字數 730 閱讀 6207

使用linux作業系統的人,一般都用過檔案查詢命令find,在檔案數量非常龐大的時候,比如在高通的

android工程專案中,目錄大小有十幾個g,檔案數量非常多,用find命令就太慢了。

下面介紹乙個比find快得多的命令,搜尋任何檔案幾乎都能在一秒內返回,時間複雜度o(1)

mlocate

這個命令的原理是,先為檔案系統建立索引資料庫,mlocate只是搜尋索引,所以速度快

準備工作:建立資料庫(建立索引)

sudo updatedb          只有root許可權才能執行,他會掃瞄整個系統,為整個系統建立索引,資料庫在/var/lib/mlocate/mlocate.db

這個過程會比較慢,可以在中午或晚上跑一下,執行完了上面的命令就可以使用

mlocate搜尋檔案了

使用命令

mlocate  abc.txt

mlocate  -ie  abc.txt          如果 abc.txt已經刪除了,使用-e會檢查檔案是否真實存在,而不必updatedb;-i,忽略大小寫

mlocate  /etc/*profile          在/etc中查詢類似profile的檔案

注意:對於新增檔案應該先updatedb更新資料庫,否則就搜不到,當然更新索引時,執行updatedb還是比較快的

Linux下的find用法

想一下我們為什麼要熟悉find命令呢?whereis和locate都可以用來查詢,但是這兩個是通過資料庫來查因為沒有實際查詢硬碟所以相當快速,但是也會有其他問題 1 whereis命令只能用於程式名的搜尋,而且只搜尋二進位制檔案,man說明檔案和源 檔案 省略引數時返回所有資訊 2 whereis查...

linux下的find指令

在linux下我們可以用到三個命令來查詢檔案,通常我們都是先使用whereis或者是locate來檢查,如果真的找不到了我們才以find來找。為什麼呢?因為whereis和locate是利用資料庫來查詢資料,所以相當快速,而且並沒有實際查詢硬碟,比較節省時間。但是find是直接查詢硬碟,如果你的硬碟...

Linux下的find指令

在linux 下我們可以用到三個命令來查詢檔案,通常使用whereis或者是locate來檢查,如果真的找不到了我們就以find來找。因為whereis和locate是利用 資料庫來查詢資料,所以相當快速,而且並沒有實際查詢硬碟,比較節省時間。但是find是直接查詢硬碟,如果你的硬碟比較老舊的話,就...