文件查找之locate、whereis与find

locate

    非实时,模糊匹配,根据文件系统的数据库进行查找;
    updatedb:生动生成文件数据库,这个数据库会在每天固定的时间自动生成,也可以用此命令手动生成。
   
   
   
   
  1. /var/lib/mlocate/mlocate.db
   
   
   
   
  1. 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. find /usr/sam      -path "/usr/sam/dir1" -prune      -o -print
  2. find [PATH EXPREESION]-a [PATH EXPREESION] -a [PATH EXPREESION] -o [PATH EXPREESION]
 
这个表达式组合特例可以用伪码写为
     
     
     
     
  1. if -path "/usr/sam"then
  2. -prune
  3. else
  4. -print
  5. fi




来自为知笔记(Wiz)


你可能感兴趣的:(数据库)