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]#