1. 程式人生 > >Linux下which、whereis、locate、find 命令查詢檔案

Linux下which、whereis、locate、find 命令查詢檔案

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

which       檢視可執行檔案的位置
whereis    檢視檔案的位置
locate       配 合數據庫檢視檔案位置
find          實際搜尋硬碟查詢檔名稱

1、which
語法:
[[email protected] ~]# which 可執行檔名稱
 例如:
[[email protected] ~]# which passwd
 /usr/bin/passwd
 which是通過 PATH環境變數到該路徑內查詢可執行檔案,所以基本的功能是尋找可執行檔案

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

3、 locate

locate命令用於查詢檔案,它比find命令的搜尋速度快,它需要一個數據庫,這個資料庫由每天的例行工作(crontab)程式來建立。當我們建立好這個資料庫後,就可以方便地來搜尋所需檔案了。

即先執行:updatedb(無論在那個目錄中均可,可以放在crontab中 )後在   /var/lib/slocate/ 下生成 slocate.db 資料庫即可快速查詢。在命令提示符下直接執行#updatedb 命令即可。
語法:
[[email protected] ~]# locate 檔案或者目錄名稱
 例 如:
[[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 路徑 引數
 參 數說明:
 時間查詢引數:
-atime n :將n*24小時記憶體取過的的檔案列出來
-ctime n :將n*24小時內改變、新增的檔案或者目錄列出來
-mtime n :將n*24小時內修改過的檔案或者目錄列出來
-newer file :把比file還要新的檔案列出來
 名稱查詢引數:
-gid n       :尋找群組ID為n的檔案
-group name  :尋找群組名稱為name的檔案
-uid n       :尋找擁有者ID為n的檔案
-user name   :尋找使用者者名稱為name的檔案
-name file   :尋找檔名為file的檔案(可以使用萬用字元)
 例 如:
[[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

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

相關推薦

Linuxwhichwhereislocatefind 命令查詢檔案

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

大量示例徹底搞懂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

linux中如何使用find命令查詢檔案

find命令用來在指定目錄下查詢檔案。任何位於引數之前的字串都將被視為欲查詢的目錄名。 下面介紹一些關於使用find命令查詢檔案的命令格式和示例: 1.格式: find +目錄 +條件 +條件值 如果

Linuxfind命令查詢檔案大小為XX的檔案的辦法

例如:一個檔案5556位元組,可以這樣寫 find /root -size -5557c -size +5555c -exec ls -ld {} \; 即查詢大於5555位元組小於5557位元組的檔案,以上查詢的是/root 目錄 find /root -size -50

Linuxwhichwhereislocatefind 命令的區別

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

Linux 檔案搜尋命令findwhichwhereislocate

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

Ubuntu的whichwhereislocatefind命令

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

linuxwhichwhereisloactefind的區別

幫助 可執行文件 執行 匹配 環境變量 命令 建立 環境變量path 當前 1,which在當前環境變量PATH中依此查找 一般用於查找命令/可執行文件所在路徑 2,whereis 返回與名稱匹配的二進制文件,源文件,幫助文件, 使用之前可以用updatadb命令來更新

Linux查看/修改系統時區時間

英國倫敦 sha 硬件時間 創建 com rec shanghai asi deb 一、查看和修改Linux的時區 1. 查看當前時區 命令 : "date -R" 2. 修改設置Linux服務器時區 方法 A 命令 : "tzselect" 方法 B 僅限於RedHat

linux查看機器的CPU內存信息

linux查看cpu信息Linux下如何查看版本信息, 包括位數和多核信息,今天我們就來一起看看linux 查看版本信息以及查看CPU內核信息、CPU具體型號等等,整個CPU信息一目了然。相信不會讓大家失望。# uname -aLinux euis1 2.6.9-55.ELsmp #1 SMP Fri Apr

Linux創建和刪除軟硬鏈接 可臨時處理空間不足

clas 就會 blog file 兩種 而是 也有 符號連接 總計 在Linux系統中,內核為每一個新創建的文件分配一個Inode(索引結點),每個文件都有一個惟一的inode號。文件屬性保存在索引結點裏,在訪問文件時,索引結點被復制到內存在,從而實

轉載:Linux查看/修改系統時區時間

div 系統 啟動 localtime ive hctosys red 亞洲 命令 一、查看和修改Linux的時區 1. 查看當前時區 命令 : "date -R" 2. 修改設置Linux服務器時區 方法 A 命令 : "tzselect" 方法 B 僅限於RedHat

linux創建和刪除軟硬鏈接

在linux下創建和刪除軟、硬鏈接說明:在安裝Mysql時,采用軟鏈接的方式來訪問Mysql安裝包,這樣可以避免後期升級,而且不方便知曉其版本,軟鏈接和硬鏈接操作如下 來源地址:https://www.cnblogs.com/xiaochaohuashengmi/archive/2011/10/05/2199

linux查看物理CPU個數核數邏輯CPU個數

相同 查看 red sort red hat wc -l 詳細 dmidecode processor cat /proc/cpuinfo中的信息processor 邏輯處理器的id。physical id 物理封裝的處理器的id。core id

linux URL中 UTF-8編碼GB2312編碼與漢字之間的轉換

下面是UTF-8編碼的轉換程式碼 #include <string.h> #include <stdio.h> #include <stdlib.h> /* 16進位制字元表 */ static const char c2x_table[] = "0

linux獲取本機IPv6地址字首閘道器

獲取本機IPv6資訊命令:cat /proc/net/if_inet6 [email protected]:/home/user1/# cat /proc/net/if_inet6 fe80000000000000922b34fffe4e70f4 02 40 20 80 et

EngineerCMS在linux部署,並採用dockeronlyoffice實現文件協作

等了好久,這次終於下決心在區域網部署了linux系統,並安裝docker和load了onlyoffice,利用engineercms進行資料管理和文件協作。 我整理了完整文件,見我的網盤。 engineercms 0基礎安裝linux、onlyoffice和engineercms&n

Linux啟動,停止,重啟NginxMysqlPHP

LINUX啟動Nginx的命令: 一、查詢是否啟動 [[email protected] php-fpm.d]# ps -ef | grep nginx root 25225 1 0 19:26 ? 00:00:00 nginx: master process

Linux 壓縮與解壓縮 zipbinzip2tarzip命令的使用

我們經常需要對檔案壓縮或打包實現統一管理,下面就讓我們來看看gzip、bzip2、tar、zip這些命令的使用 (1)    gzip 格式:gzip [選項] [檔案] 示例: ---在testzip目錄下有以下檔案 --