文件查找之locate、whereis与find

locate

    非实时,模糊匹配,根据文件系统的数据库进行查找;
    updatedb:生动生成文件数据库,这个数据库会在天天固定的时间自动生成,也能够用此命令手动生成。
   
   
   
   
/var/lib/mlocate/mlocate.db
   
   
   
   
yum install -y mlocate

     locate命令实际上是find -name的另外一种写法

whereis


whereis命令只能用于程序名的搜索,并且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。若是省略参数,则返回全部信息。

whereis [ -sbmu ] [ -SBM dir ... -f ] name...
-b:只查找二进制文件; 
-B<目录>:只在设置的目录下查找二进制文件; 
-f:不显示文件名前的路径名称; 
-m:只查找说明文件; 
-M<目录>:只在设置的目录下查找说明文件; 
-s:只查找原始代码文件; 
-S<目录>只在设置的目录下查找原始代码文件; 
-u:查找不包含指定类型的文件。

find

    实时、精确、支持众多查找标准
find 查找路径 查找标准 查找后进行的处理动做
    查找路径:默认为当前目录
    查找标准:默认为指定路径下的全部文件
    处理动做:默认为显示

查找标准
    -name “FILENAME“:对文件名进行精确匹配
    -iname ”FILENAME“:对文件名进行匹配,不区分大小写
    -regex PATTERN:基于正则表达式进行文件查找

    -user USERNAME:基于文件的属主进行查找
    -group GROUPNAME: 基于文件的属组进行查找
    -uid UID:基于文件的UID进行查找     
    -gid GID:基于文件的GID进行查找
    注意:删除一个用户,属于这个用户属主文件将只保留UID号
    -nouser:没有属主
    -nogroup:没有属组

-type:指定文件类型
-size:指定文件大小
    [=|-]#10k
    [=|-]#10m
      [=|-]#10g
find -size 10k
    会匹配9k~10k之间的内容

对文件时间的查找
单位为天
-atime 
-mtime 
-ctime 
单位为分钟
-amin
-mmin
-cmin

对文件权限进行查找
-perm MOOD精确匹配
-perm -MOOD文件权限彻底包含MOOD才匹配
-perm /MOOD任意一位匹配便可

组合查找
-a:默认,可省
-o:或者
-not:
find /tmp -not -user user1 -o -type d等价于find /tmp -not \(-user user1 -a -type d\)

动做
    -print:显示(默认)
    -print0:不换行显示
    -ls:相似于ls -l
    -ok COMMAND {} \;每一次操做都须要用户确认
         例子:find -atime +5 -ok mv {} {}.old \;
    -exec COMMAND  {} \;不须要用户确认
         例子:find -atime +2 -exec mv {} {}.old \;
    {}文件名占位符
    -path PATH :指定路径
    -prune:删除

除去某一路径
    
    
    
    
  1. PATH EXPREESION]-a PATH EXPREESION] -a [PATH EXPREESION] -o [PATH EXPREESION]
find /usr/sam      -path "/usr/sam/dir1" -prune      -o -printfind [[
 
这个表达式组合特例能够用伪码写为
     
     
     
     
if -path "/usr/sam"then -pruneelse -printfi




相关文章
相关标签/搜索