Linux經常使用命令之文件搜索命令

find命令

find命令用來在指定目錄下查找文件。任何位於參數以前的字符串都將被視爲欲查找的目錄名。若是使用該命令時,不設置任何參數,則find命令將在當前目錄下查找子目錄與文件。而且將查找到的子目錄和文件所有進行顯示。linux

語法

find [搜索範圍][匹配條件]

實例

$find /etc -name init(在目錄/etc中查找文件init)
$find /etc -name *init*(在目錄/etc中查找包含init的文件)
$find /etc -iname init(在目錄/etc中查找文件init或INIT)
$find / -size +204800(在根目錄下查找大於100MB的文件,+n大於,-n小於,n等於)
$find /home -user bbb(在根目錄下查找全部者爲bbb的文件,-group根據所屬組查找)
$dind /etc -cmin -5(在/etc下查找5分鐘內被修改過屬性的文件和目錄,-amin訪問世家你access,-cmin文件屬性change,-mmin文件內容modify)
$find /etc -size +163840 -a -size -204800(在/etc下查找大於80MB小於100MB的文件,-a表示兩個條件同時知足,-o表示兩個條件知足任意一個便可)
$find /etc -name inittab -exec ls -l {}\;(在/etc下查找inittab文件並顯示其詳細信息)

locate/slocate命令

locate命令slocate命令都用來查找文件或目錄。數據庫

locate命令實際上是find -name的另外一種寫法,可是要比後者快得多,緣由在於它不搜索具體目錄,而是搜索一個數據庫/var/lib/locatedb,這個數據庫中含有本地全部文件信息。Linux系統自動建立這個數據庫,而且天天自動更新一次,因此使用locate命令查不到最新變更過的文件。爲了不這種狀況,能夠在使用locate以前,先使用updatedb命令,手動更新數據庫。spa

語法

locate/slocate(選項)(參數)

選項

-d<目錄>或--database=<目錄>:指定數據庫所在的目錄;
-u:更新slocate數據庫;
--help:顯示幫助;
--version:顯示版本信息。

參數

查找字符串:要查找的文件名中含有的字符串。.net

實例

搜索etc目錄下全部以sh開頭的文件:code

locate /etc/sh

搜索用戶主目錄下,全部以m開頭的文件:字符串

locate ~/m

搜索用戶主目錄下,全部以m開頭的文件,而且忽略大小寫:get

locate -i ~/m

which命令

which命令用於查找並顯示給定命令的絕對路徑,環境變量PATH中保存了查找命令時須要遍歷的目錄。which指令會在環境變量$PATH設置的目錄裏查找符合條件的文件。也就是說,使用which命令,就能夠看到某個系統命令是否存在,以及執行的究竟是哪個位置的命令。it

語法

which(選項)(參數)

選項

-n<文件名長度>:制定文件名長度,指定的長度必須大於或等於全部文件中最長的文件名;
-p<文件名長度>:與-n參數相同,但此處的<文件名長度>包含了文件的路徑;
-w:指定輸出時欄位的寬度;
-V:顯示版本信息。

參數

指令名:指令名列表。io

實例

查找文件、顯示命令路徑:class

[root@localhost ~]# which pwd
/bin/pwd

[root@localhost ~]#  which adduser
/usr/sbin/adduser

說明:which是根據使用者所配置的 PATH 變量內的目錄去搜尋可運行檔的!因此,不一樣的 PATH 配置內容所找到的命令固然不同的!

相關文章
相關標籤/搜索