Ubuntu查找文件的命令

find


find命令準確,但速度非常慢,它可以查找任何類型的文件

使用格式如下

find [指定目錄] [指定條件] [指定動作]

參數說明

  • [指定目錄]: 所要搜索的目錄及其所有子目錄。默認爲當前目錄
  • [指定條件]: 所要搜索的文件的特徵
  • [指定動作]: 對搜索結果進行特定的處理

常用的[指定條件]

  • -name:按文件名來查找文件
  • -user:按照文件的屬主來查找文件
  • -group:按照文件所屬的組來查找文件
  • -perm:按照文件權限來查找文件
  • -prune:不在當前指定目錄中查找

常用的[指定動作]

  • -print:將匹配的文件輸出到標準輸出
  • -exec:對匹配的文件執行該參數所給出的shell命令
  • -ok:和-exec的作用相同,在執行每一個命令之前,讓用戶來確定是否執行

find命令不加任何參數時,表示搜索路徑爲當前目錄及其子目錄,默認的動作爲-print,即不過濾任何結果,也就是說輸出所有的文件

使用實例

遞歸搜索當前目錄中,所有以file開頭的文件

find . -name 'file*'

遞歸搜索當前目錄中,所有以file開頭的文件,並顯示它們的詳細信息

find . -name 'file*' -ls

locate


locate命令可以說是find -name的另一種寫法,但是要比後者快得多,原因在於它不搜索具體目錄,而是搜索一個數據庫/var/lib/locatedb,這個數據庫中含有本地所有文件信息

Linux自動創建這個數據庫,並且每天自動更新一次,所以使用locate命令查不到最新變動過的文件。爲了避免這種情況,可以在使用locate之前,先使用updatedb命令,手動更新數據庫

使用格式如下

locate [參數] <文件名>

使用實例

搜索etc目錄下所有以file開頭的文件

locate /etc/file

搜索用戶主目錄下,所有以f開頭的文件,並且忽略大小寫

locate -i ~/f

whereis


whereis命令只能搜索特定格式的文件

使用格式如下

whereis [參數] <文件名>

可搜索的文件類型

  • 二進制文件(-b)
  • 源代碼文件(-s)
  • 說明文件(-m)

如果省略參數,則返回所有信息

使用實例

找出名爲find的文件位置

whereis find

which


which命令的作用是,在PATH變量指定的路徑中,搜索某個系統命令的位置,並且返回第一個搜索結果

也就是說,使用which命令,就可以看到某個系統命令是否存在,以及執行的到底是哪一個位置的命令

使用格式如下

which <命令>

使用實例

查找find命令的位置

which find

type


type命令其實不能算查找命令,它是用來區分某個命令到底是由shell自帶的,還是由shell外部的獨立二進制文件提供的

如果一個命令是外部命令,那麼使用-p參數,會顯示該命令的路徑,相當於which命令

使用格式如下

type <命令>

使用實例

type cd

系統會提示,cdshell的自帶命令build-in

type grep

系統會提示,grep是一個外部命令,並顯示該命令的路徑

type -p grep

加上-p參數後,就相當於which命令

感覺比較好用的是locate命令,速度非常快,還能達到find命令一樣的準確,只需要先用updatedb命令更新數據庫

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