linux系統中有幾個關於文件搜索的命令,例如:locate,wheris以及find在工做中比較經常使用到。.node
1.locate命令:locate查找文件是基於/var/lib/mlocate數據庫,該數據庫包含全部的本地文件信息,Linux系統自動建立這個數據庫,而且天天自動更新一次。本地剛建立一個文件,但使用locate命令搜索不到本地文件,須要使用updaetedb手動更新一下本地數據庫。linux
[root@node-2 ~]# touch helloWorld [root@node-2 ~]# locate helloWorld [root@node-2 ~]# updatedb [root@node-2 ~]# locate helloWorld /root/helloWorld [root@node-2 ~]#
經常使用使用方法及參數: locate 文件名稱 #會匹配出本地/var/lib/mlocate數據庫中已經創建索引的包含文件名稱的全部文件。 [root@node-2 ~]# locate /etc/passwd /etc/passwd /etc/passwd- [root@node-2 ~]# 經常使用參數 -h --help #顯示幫助 -V --version #顯示版本信息 -b, --basename match only the base name of path names #只匹配路徑名的基本名稱 -c, --count only print number of found entries #只打印找到的條目數量 -e, --existing only print entries for currently existing files #僅打印當前存在的文件的條目 -i, --ignore-case ignore case distinctions when matching patterns #忽略大小寫 -w, --wholename match whole path name (default) #匹配整個路徑名稱(默認)
2.find命令:find命令能夠在不通位置根據不一樣標準搜索任何文件,並支持多種方式處理搜索結果。其工做流程:(1)搜索全部用戶指定的路徑,包括全部的子目錄。(2)對於遇到的每一個文件,根據是否符合用戶指定的條件,全部符合條件的文件造成一個列表。(3)對於結果列表的文件,執行用戶指定的操做。數據庫
參數: -name filename #表示包含指定匹配模式的文件名 -iname filename #表示包含指定匹配模式的文件名,不區分大小寫 -type #指定文件類型,f表示普通文件 ,d表示目錄,c表示塊設備,p表示管道,l表示鏈接 -user userid #匹配其全部者爲指定用戶ID的文件 -group groupid #匹配其全部者的組爲指定組ID的文件 -size size #匹配其大小爲size的文件 -empety #匹配空文件 -amin[-+]n #文件最後一次訪問時間,-n表示時間爲n分鐘之內,+n表示n分鐘以前,n表示恰好n分鐘 -atime [-+]n #天 -cmin[-+]n #文件最後一次狀態改變時間 -ctime[-+]n # -mmin [-+]n #最後一次被修改時間 -mtime [-+]n 動做: -print #默認動做,將搜索結果寫入到標準輸出 -fprint file #將搜索結果寫入到file中 -ls #以詳細格式展現搜索結果 -fls file #將詳細格式結果寫入file -delete #將結果文件刪除 -exec command {} \; #查找並執行命令,{}表示搜索到的文件名 -ok command {}\; #查找並執行命令,可是須要用戶確認 列子,找到3分鐘以前建立包含一個數字的文件並將其刪除。 [root@node-2 home]# ll -rst total 8 4 drwxr-xr-x. 2 root root 4096 Mar 21 19:34 ISO 4 drwx------. 4 xguest xguest 4096 Mar 22 01:06 xguest 0 -rw-r--r-- 1 root root 0 Apr 20 17:07 file1[a-z].1 0 -rw-r--r-- 1 root root 0 Apr 20 17:07 file2[a-z].2 0 -rw-r--r-- 1 root root 0 Apr 20 17:07 file3[a-z].3 0 -rw-r--r-- 1 root root 0 Apr 20 17:07 file5[a-z].5 0 -rw-r--r-- 1 root root 0 Apr 20 17:07 file7[a-z].7 0 -rw-r--r-- 1 root root 0 Apr 20 17:07 file6[a-z].6 0 -rw-r--r-- 1 root root 0 Apr 20 17:07 file8[a-z].8 0 -rw-r--r-- 1 root root 0 Apr 20 17:07 file9[a-z].9 0 -rw-r--r-- 1 root root 0 Apr 20 17:27 text1.txt 0 -rw-r--r-- 1 root root 0 Apr 20 17:27 text2.txt 0 -rw-r--r-- 1 root root 0 Apr 20 17:27 tex [root@node-2 home]# find -type f -mmin +3 -iname "*[1-9]*" -exec rm -rf {} \; [root@node-2 home]# ll -rst total 8 4 drwx------. 4 xguest xguest 4096 Mar 22 01:06 xguest 0 -rw-r--r-- 1 root root 0 Apr 20 17:27 text1.txt 0 -rw-r--r-- 1 root root 0 Apr 20 17:27 text2.txt 0 -rw-r--r-- 1 root root 0 Apr 20 17:27 text3.txt 0 -rw-r--r-- 1 root root 0 Apr 20 17:27 text4.txt 0 -rw-r--r-- 1 root root 0 Apr 20 17:27 text5.txt 0 -rw-r--r-- 1 root root 0 Apr 20 17:27 text6.txt 0 -rw-r--r-- 1 root root 0 Apr 20 17:27 text9.txt 0 -rw-r--r-- 1 root root 0 Apr 20 17:27 text8.txt 0 -rw-r--r-- 1 root root 0 Apr 20 17:27 text7.txt 4 drwxr-xr-x. 2 root root 4096 Apr 20 17:28 ISO [root@node-2 home]#