1. 程式人生 > >which、whereis、locate、find 命令用法

which、whereis、locate、find 命令用法

大部分轉自http://312788172.iteye.com/blog/730280,有修改

我們經常在linux要查詢某個檔案,但不知道放在哪裡了,可以使用下面的一些命令來搜尋。這些是從網上找到的資料,因為有時很長時間不會用到,當要用的時候經常弄混了,所以放到這裡方便使用。 
which      在PATH變數指定的路徑中,搜尋某個系統命令的位置,並且返回第一個搜尋結果。
whereis      whereis命令只能用於程式名的搜尋,而且只搜尋二進位制檔案(引數-b)、man說明檔案(引數-m)和原始碼檔案(引數-s)。如果省略引數,則返回所有資訊。
locate       配合資料庫檢視檔案位置。
find          實際搜尋硬碟查詢檔名稱。

1、which 
語法: 
[[email protected] ~]# which 可執行檔名稱 
例如: 
[[email protected] ~]# which passwd 

/usr/bin/passwd 

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

which指令會在環境變數$PATH設定的目錄裡查詢符合條件的檔案,所以基本的功能是尋找可執行檔案 

2、whereis 

whereis指令查詢符合條件的檔案。這些檔案的烈性應屬於原始程式碼,二進位制檔案,或是幫助檔案.

whereis命令只能用於程式名的搜尋,而且只搜尋二進位制檔案(引數-b)、man說明檔案(引數-m)和原始碼檔案(引數-s)。如果省略引數,則返回所有資訊。

語法: 
[[email protected] ~]# whereis [-bmsu] 檔案或者目錄名稱 
引數說明: 
-b : 只找二進位制檔案 
-m: 只找在說明檔案manual路徑下的檔案 
-s : 只找source原始檔 
-u : 沒有說明文件的檔案 
例如: 
[[email protected] ~]# whereis passwd 
passwd: /usr/bin/passwd /etc/passwd /usr/share/man/man1/passwd.1.gz /usr/share/man/man5/passwd.5.gz 
將和passwd檔案相關的檔案都查找出來 

[
[email protected]
~]# whereis -b passwd 
passwd: /usr/bin/passwd /etc/passwd 
只將二進位制檔案查找出來 

和find相比,locate查詢的速度非常快,這是因為linux系統會將系統內的所有檔案都記錄在一個數據庫檔案中,當使用locate時,會從資料庫中查詢資料,而不是像find命令那樣,通過遍歷硬碟來查詢,效率自然會很高。 
但是該資料庫檔案並不是實時更新,預設情況下時一星期更新一次,因此,我們在用locate 查詢檔案時,有時會找到已經被刪除的資料,或者剛剛建立檔案,卻無法查詢到,原因就是因為資料庫檔案沒有被更新(使用updatedb命令進行更新)。 

3、 locate 
語法: 

[[email protected] ~]# locate 檔案或者目錄名稱

locate -i 忽略大小寫

例 如: 
[[email protected] ~]# locate passwd 
/home/weblogic/bea/user_projects/domains/zhanggongzhe112/myserver/stage/_appsdir_DB_war/DB.war/jsp/as/user/passwd.jsp 
/home/weblogic/bea/user_projects/domains/zhanggongzhe112/myserver/stage/_appsdir_admin_war/admin.war/jsp/platform/passwd.jsp 
/lib/security/pam_unix_passwd.so 
/lib/security/pam_passwdqc.so 
/usr/include/rpcsvc/yppasswd.x 
/usr/include/rpcsvc/yppasswd.h 
/usr/lib/perl5/5.8.5/i386-linux-thread-multi/rpcsvc/yppasswd.ph 
/usr/lib/kde3/kded_kpasswdserver.la 
/usr/lib/kde3/kded_kpasswdserver.so 
/usr/lib/ruby/1.8/webrick/httpauth/htpasswd.rb 
/usr/bin/vncpasswd 
/usr/bin/userpasswd 
/usr/bin/yppasswd 
………… 

4、 find 
語法: 

[[email protected] ~]# find 路徑 引數

示例:
[[email protected] ~]# find / -name zgz 
/home/zgz 
/home/zgz/zgz 
/home/weblogic/bea/user_projects/domains/zgz 
/home/oracle/product/10g/cfgtoollogs/dbca/zgz 
/home/oracle/product/10g/cfgtoollogs/emca/zgz 
/home/oracle/oradata/zgz 

[[email protected] ~]# find / -name '*zgz*' 
/home/zgz 
/home/zgz/zgz1 
/home/zgz/zgzdirzgz 
/home/zgz/zgz 
/home/zgz/zgzdir 
/home/weblogic/bea/user_projects/domains/zgz 
/home/weblogic/bea/user_projects/domains/zgz/zgz.log00006 
/home/weblogic/bea/user_projects/domains/zgz/zgz.log00002 
/home/weblogic/bea/user_projects/domains/zgz/zgz.log00004 
/home/weblogic/bea/user_projects/domains/zgz/zgz.log 
/home/weblogic/bea/user_projects/domains/zgz/zgz.log00008 
/home/weblogic/bea/user_projects/domains/zgz/zgz.log00005 

當我們用locate無法查詢到我們需要的檔案時,可以使用find,但是find是在硬碟上遍歷查詢,因此非常消耗硬碟的資源,而且效率也非常低,因此建議大家優先使用whereis和locate,可以在使用locate之前,先使用updatedb命令,手動更新資料庫。
locate 是在資料庫裡查詢,資料庫大至每天更新一次。 
whereis 可以找到可執行命令和man page 
find 就是根據條件查詢檔案。 

which 可以找到可執行檔案和別名(alias) 

5、type

type命令其實不能算查詢命令,它是用來區分某個命令到底是由shell自帶的,還是由shell外部的獨立二進位制檔案提供的。如果一個命令是外部命令,那麼使用-p引數,會顯示該命令的路徑,相當於which命令。

相關推薦

大量示例徹底搞懂Linux查詢,whichwhereislocatefind

前言 Linux常用命令中,有些命令可以幫助我們查詢二進位制檔案,幫助手冊或原始檔的位置,也有的命令可以幫助我們查詢磁碟上的任意檔案,今天我們就來看看這些命令如何使用。 which which命令會在PATH變數指定的路徑中,搜尋某個系統命令的位置。例如: which -a which #檢視命令

linux中搜尋檔案或目錄(whichwhereislocatefind

[[email protected] ~]# locate passwd /home/weblogic/bea/user_projects/domains/zhanggongzhe112/myserver/stage/_appsdir_DB_war/DB.war/jsp/as/user/passw

Ubuntu的whichwhereislocatefind命令

pos find命令 body 文件 strong linux gpo OS whereis which 只能尋找可執行文件 ,並在PATH變量裏面尋找。whereis 從linux文件數據庫(/var/lib/slocate/slocate.db)尋找,所以有可能找到剛

Linux 檔案搜尋命令findwhichwhereislocate

  Linux 提供了許多用於檔案搜尋的命令,這些命令都很強大,但是也有一些不同之處,這裡分別介紹一下。 一、find 命令   find 是最常見和最強大的一個檔案搜尋命令。使用 find 命令可以在指定目錄中搜索指定的檔案。語法如下: find [目錄] [選項] [動作]   其中,目

whichwhereislocatefind 命令用法

大部分轉自http://312788172.iteye.com/blog/730280,有修改 我們經常在linux要查詢某個檔案,但不知道放在哪裡了,可以使用下面的一些命令來搜尋。這些是從網上找到的資料,因為有時很長時間不會用到,當要用的時候經常弄混了,所以放到這裡方便使

shell學習之locatefind命令

2linux系統中有幾個關於文件搜索的命令,例如:locate,wheris以及find在工作中比較常用到。. 1.locate命令:locate查找文件是基於/var/lib/mlocate數據庫,該數據庫包含所有的本地文件信息,Linux系統自動創建這個數據庫,並且每天自動更新一次。本地剛創建一個文件,但

find命令用法整理

find命令find命令 可以定位文件,配合參數可以快速定位所要找的文件使用方法:find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]常用的幾個[expression]

linux find命令用法 linux學習心得體會

txt linux ali 學習心得 訪問 lin atime str 輸出 find命令用來在指定目錄下查找文件的命令,和locate不同,find命令是實時精確查找,不做模糊匹配,但是可以使用通配符查找,相對更精確。任何位於參數之前的字符串都將被視為欲查找的目錄名。如果

Linux中find命令用法全匯總,看完就沒有不會用的!

分用 想要 單個 ges 基本上 特定 cda size 以及 Linux 查找命令是Linux系統中最重要和最常用的命令之一。查找用於根據與參數匹配的文件指定的條件來搜索和查找文件和目錄列表的命令。查找可以在各種條件下使用,您可以通過權限,用戶,組,文件類型,日期,大小等

Linux中find命令用法全彙總

Linux 查詢命令是Linux系統中最重要和最常用的命令之一。查詢用於根據與引數匹配的檔案指定的條件來搜尋和查詢檔案和目錄列表的命令。查詢可以在各種條件下使用,您可以通過許可權,使用者,組,檔案型別,日期,大小等可能的條件查詢檔案。 第一部分:查詢名稱查詢檔

C語言再學習 -- Linux下find命令用法

linux下查詢檔案的命令有兩個:locate 和 find 首先說一下locate: 這個命名是對其生成的資料庫進行遍歷(生成資料庫的命令:uodatedb),這一特性決定了用locate查詢檔案速度很快,但是locate命令只能對檔案進行模糊匹配,在精度上來說差了點,

Linux 系統中find 命令用法

根據檔案或者正則表示式進行匹配 列出當前目錄及子目錄下所有檔案和資料夾 find . 在/home目錄下查詢以.txt結尾的檔名 find /home -name "*.txt" 同上,但忽略大小寫 find /home -iname "*.txt" 當前目錄及子目錄下查詢所有以.txt和.pdf

Linux下4個查找命令whichwhereislocatefind的總結

HERE 相同 所在 pat 建立 手動 src TP 原理 (1)which [-a] cmdname1 cmdname2 ...... 作用:locate a command,從環境變量PATH中,定位/返回與指定名字相匹配的

Linux命令——locatefindwhereiswhichtype

有時候你想要查詢一個檔案 ,不可能挨個目錄進去看。Linux提供了幾個命令用於查詢 locate 和這個一脈的好像還有slocate,rlocate,沒仔細研究過有啥區別。 locate可以說是查詢效率最高的一款根據,但是有個小缺點,這個小缺點也是他為啥查詢效率高的原因。locate的查詢方式不是根據檔

Linux 常用命令之——檔案搜尋命令findlocatewhichwhereisgrep

一、命令名稱:find 命令所在路徑:/bin/find 執行許可權:所有使用者 語法: find  [搜尋範圍] [匹配條件] $find /etc -name init           -name          在某路徑下根據檔名稱搜尋檔案 $find

Linux下whichwhereislocatefind 命令的區別

http://blog.chinaunix.net/uid-20554039-id-3035417.html 我們經常在linux要查詢某個檔案,但不知道放在哪裡了,可以使用下面的一些命令來搜尋。這些是從網上找到的資料,因為有時很長時間不會用到,當要用的時候經常弄混了

linux命令find, whichwhereislocate,有什麼區別?

whatis 用於查詢一個命令執行什麼功能,並將查詢結果列印到終端上 which 檢視可執行檔案的位置 whereis 檢視檔案的位置 man Linux提供了豐富的幫助手冊,當你需要檢視某個命令的引數時不必到處上網查詢,只要man一下即可 locate 配 合數據庫檢視檔案位置 fin

Linux下4個查詢命令whichwhereislocatefind的總結

本人是Linux的初學者,由於在使用Linux的過程中經常受到各種相似命令工具使用的困擾,遂萌生寫此總結。Linux下查詢相關命令主要有以下4個:which、whereis、locate、find。 (1)which   [-a]    cmdname1 cmdname2

linux命令:檔案搜尋(locatewhereiswhichfindgrep)

locate(檔案搜尋命令): 1、格式: locate 檔名 2、描述: 在後臺數據庫(/var/lib/mlocate)中按檔名搜尋,速度更快,是因為不用遍歷整個系統。mlocate檔案是定時更新的,在使用locate命令前可以先使用命令 u

Linux下whichwhereislocatefind 命令查詢檔案

我們經常在linux要查詢某個檔案,但不知道放在哪裡了,可以使用下面的一些命令來搜尋。這些是從網上找到的資料,主要可以使用如下的幾個命令 which       檢視可執行檔案的位置 whereis