linux下查找文件命令

1.whereis 文件名
特點:快速, 執行準確查找。
用途   找到程序的源、二進制文件或手冊。
語法   whereis [ -s ] [ -b ] [ -m ] [ -u ] [ { { -S | -B | -M } Directory ... }... -f ] File ...
描述   whereis 命令找到指定文件的源、二進制文件和手冊等各部分。提供的名稱首先去除前導路徑名組件和任何(單個的)格式爲 .ext 的尾隨擴展名(例如,.c)。由於使用源代碼控制系統(請參閱 SCCS)而引起的 s. 前綴也會被處理。然後命令試圖從一個標準位置列表中查找期望的程序。
 
  如果輸入錯誤的選項,則返回一條用法消息。在其它情況下,不提供診斷。
 
標誌   如果給出 -b、-s、-m 或 -u 標誌中的任一個,則 whereis 命令僅分別搜索二進制文件、源、手冊或不尋常部分(或其中的兩個)。
 
  -b 搜索文件的二進制部分。
 
  -m 搜索文件的手冊部分。
 
  -s 搜索文件的源部分。
 
  -u 搜索不尋常文件。如果一個文件沒有每個請求類型的一個項則認爲該文件是不尋常文件。輸入 whereis -m -u *,則尋找當前目錄中那些沒有文檔的文件。
 
  -B、-M 和 -S 標誌可以用於更改或限制 whereis 命令搜索的位置。由於該程序爲了運行得更快而使用了 chdir 子例程,所以用 -M、-S 和 -B 標誌目錄列表給出的路徑名必須是完整的;例如,它們必須以一個 / (斜槓)開始。
 
  -B 與 -b 一樣,但是添加了要搜索的目錄。更改或限制 whereis 命令搜索二進制文件的位置。
 
  -M 與 -m 一樣,但是添加了要搜索的目錄。更改或限定 whereis 命令搜索手冊部分的位置。
 
  -S 與 -s 一樣,但是添加了要搜索的目錄。更改或限定 whereis 命令搜索源的位置。
 

  -f 終止最後的 -M、-S 或 -B 目錄列表併發文件名起始位置信號。

示例 要查找 /usr/ucb 目錄中的所有文件,這些文件或者在 /usr/man/man1 目錄裏沒有歸檔或者在 /usr/src/cmd 目錄裏沒有源,請輸入:cd /usr/ucb

                                                whereis -u -M /usr/man/man1 -S /usr/src/cmd -f *

文件  /usr/share/man/* 包含手冊文件的目錄。

 
  /sbin,/etc,/usr/{lib,bin,ucb,lpp}
 
  包含二進制文件的目錄。
 
  /usr/src/* 包含源代碼文件的目錄。
2.find / -name 文件名
查出很多東西,有很多“Permission Denied".
#find / -name php.ini
 
     find [路徑]  [參數]
        -gid   n     查找羣衆ID爲n的文件
    -group   name   查找羣組名稱爲n的文件
    -uid    n           。。。。。。。
        -user  name      。。。。。。。
    -name file  查找文件名爲file的文件
    -type   type  查找文件屬性爲type的文件。(d、l、b......)
    -atime    n   列出n*24小時存取過的文件
    -ctime    n   列出n*24小時新增的文件
    -mtime    n   列出n*24小時被修改過的文件
    -newer    file   列出比file文件還要新的文件
3.locate 文件名
最快的方法.執行模糊查找。
注意:第一次使用該命令,可能需要更新數據庫,按照提示的命令執行一下就好了.
locate命令可以在搜尋數據庫時快速找到檔案,數據庫由updatedb程序來更新,updatedb是由cron daemon週期性建立的,locate命令在搜尋數據庫時比由整個由硬盤資料來搜尋資料來得快,但較差勁的是locate所找到的檔案若是最近才建立或剛更名的,可能會找不到,在內定值中,updatedb每天會跑一次,可以由修改crontab來更新設定值。(etc/crontab)

locate指定用在搜尋符合條件的檔案,它會去儲存檔案與目錄名稱的數據庫內,尋找合乎範本樣式條件的檔案或目錄錄,可以使用特殊字元(如 ”*”或”?”等)來指定範本樣式,如指定範本爲kcpa*ner, locate會找出所有起始字串爲kcpa且結尾爲ner的檔案或目錄,如名稱爲kcpartner若目錄錄名稱爲kcpa_ner則會列出該目錄下包括子目錄在內的所有檔案。

locate指令和find找尋檔案的功能類似,但locate是透過update程序將硬盤中的所有檔案和目錄資料先建立一個索引數據庫,在執行 loacte時直接找該索引,查詢速度會較快,索引數據庫一般是由操作系統管理,但也可以直接下達update強迫系統立即修改索引數據庫。

不過第一次在執行update後再使用locate尋找檔案常會失敗,此時就要執行slocate ˉu該命令(也可執行updatedb指令,其效果相同)來更新slocate數據庫,該命令會在/usr/sbin下產生slocate執行檔,再由 locate到此數據庫尋找所要找的資料。

locate:該命令在運行時需要後臺索引的數據庫作爲支撐,在 Ubuntu 中這個數據庫文件位於 /var/cache/locate/locatedb。一般來說,這個數據庫文件每天是通過 cron 自動更新的。如果不幸沒有得到更新,那麼可以執行 sudo updatedb 來手動更新。
 
4.也可以這麼找 比如 在 /aaa目錄下找 123這個文件  我就執行 find /aaa |grep 123
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章