find locate whereis which區別與聯繫

Linuxfind命令在目錄結構中搜索文件,並執行指定的操作。find命令提供了相當多的查找條件,功能很強大。由於find具有強大的功能,所以它的選項也很多,其中大部分選項都值得我們花時間來了解一下。即使系統中含有網絡文件系統( NFS)find命令在該文件系統中同樣有效,只你具有相應的權限。在運行一個非常消耗資源的find命令時,很多人都傾向於把它放在後臺執行,因爲遍歷一個大的文件系統可能會花費很長的時間(這裏是指30G字節以上的文件系統)find 最強大,但參數也較多,需指定查找目錄,如 find / -name filename

locate 是一個快速查找命令,locate 讓使用者可以很快速的搜尋檔案系統內是否有指定的檔案。其方法是先建立一個包括系統內所有檔案名稱及路徑的數據庫,之後當尋找時就只需查詢這個數據庫,而不必實際深入檔案系統之中了。在一般的 distribution 之中,數據庫的建立都被放在 crontab 中自動執行。由於數據庫是定時更新,因此,結果上可能會有遲滯錯誤。和find相比,locate查找的速度非常快,當使用locate時,會從數據庫中查找數據,而不是像find命令那樣,通過遍歷硬盤來查找,效率自然會很高。

但是該數據庫文件並不是實時更新,默認情況下時一星期更新一次,因此,我們在用locate 查找文件時,有時會找到已經被刪除的數據,或者剛剛建立文件,卻無法查找到,原因就是因爲數據庫文件沒有被更新(使用updatedb命令進行更新)

whereislocate相比只是參數不同,查找原理相同。

whereis是一個根據環境變量查找可執行文件的命令,可能返回多個結果。該命令只能用於程序名的搜索,而且只搜索二進制文件(參數-b)、man說明文件(參數-m)和源代碼文件(參數-s)。如果省略參數,則返回所有信息。

which whereis  但是返回的只是第一個結果。

which命令的作用是,在PATH變量指定的路徑中,搜索某個系統命令的位置,並且返回第一個搜索結果。也就是說,使用which命令,就可以看到某個系統命令是否存在,以及執行的到底是哪一個位置的命令。

type 查看命令的類型,bash builtin,還是其他,亦可輸出命令的地址。

 

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章