Shell命令-搜索文件或目錄之whereis、locate

文件及內容處理 - whereis、locate

1. whereis:查找二進制命令,按環境變量PATH路徑查找

whereis命令的功能說明

whereis 命令用於查找文件。該指令會在特定目錄中查找符合條件的文件。這些文件應屬於原始代碼、二進制文件,或是幫助文件。該指令只能用於查找二進制文件、源代碼文件和 man 手冊頁,一般文件的定位需使用 locate 命令。

whereis命令的語法格式

whereis [options] [-BMS directory... -f] name...
whereis [-bfmsu][-B <目錄>...][-M <目錄>...][-S <目錄>...][文件...]

whereis命令的常用參數說明:

whereis 參數不多,表1爲 whereis 命令的參數及說明:

表1: whereis 命令的參數及說明

參數選項 解釋說明
-b  只查找二進制文件。
-B<目錄>  只在設置的目錄下查找二進制文件。
-f  不顯示文件名前的路徑名稱。
-m  只查找說明文件。
-M<目錄>  只在設置的目錄下查找說明文件。
-s  只查找原始代碼文件。
-S<目錄>  只在設置的目錄下查找原始代碼文件。
-u  查找不包含指定類型的文件。

whereis命令的實踐操作

範例1: 使用指令whereis 查看指令 cp 的位置,輸入如下命令

[root@m01 ~]# whereis cp
cp: /usr/bin/cp /usr/share/man/man1/cp.1.gz

注意:以上輸出信息從左至右分別爲查詢的程序名、cp 路徑、cpman 手冊頁路徑

範例2: 單獨查詢二進制文件或幫助文件,可使用如下命令

[root@m01 ~]# whereis -b cp
cp: /usr/bin/cp
[root@m01 ~]# whereis -m cp
cp: /usr/share/man/man1/cp.1.gz

2. locate:標註從數據庫 (/var/lib/mlocate/mlocate.db) 查找命令,使用updatedb更新庫

locate命令的功能說明

locate 命令用於查找符合條件的文檔,他會去保存文檔和目錄名稱的數據庫內,查找合乎範本樣式條件的文檔或目錄。一般情況我們只需要輸入 locate your_file_name 即可查找指定文件。CentOS 7已經沒有此命令,需手動安裝,方法爲:

yum install -y mlocate

locate命令的語法格式

locate [--version]
locate [-d ][--help][--version][範本樣式...]

locate命令的常用參數說明:

locate 參數不多,表1爲 locate 命令的參數及說明:

表1: locate 命令的參數及說明

參數選項 解釋說明
-d或--database= 配置locate指令使用的數據庫。locate指令預設的數據庫位於/var/lib/slocate目錄裏,文檔名爲slocate.db,您可使用 這個參數另行指定。
--help 在線幫助。
--version 顯示版本信息。

locate命令的實踐操作

範例1: 查找 passwd 文件,輸入以下命令

locate passwd

附加說明
locatefind 不同: find 是去硬盤找,locate 只在 /var/lib/slocate 資料庫中找。
locate 的速度比 find 快,它並不是真的查找,而是查數據庫,一般文件數據庫在 /var/lib/slocate/slocate.db中,所以 locate 的查找並不是實時的,而是以數據庫的更新爲準,一般是系統自己維護,也可以手工升級數據庫 ,命令爲

locate -u 

今天就寫到這裏,有什麼疑問或出現什麼錯誤,隨時歡迎大神們發表評論指點迷津

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