使用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是直接查詢硬碟,如果你的硬碟比較老舊的話,就...