Linux 文件查找

Linux 文件查找

locate:根据全系统文件数据库进行,属于模糊查找,并且是非实时的
示例:
  linlin@ubuntu:~/linlin/text$ touch locate.test
  linlin@ubuntu:~/linlin/text$ locate locate.test /home/linlin/linlin
  /home/linlin/linlin
  /home/linlin/linlin/code
  /home/linlin/linlin/test
  /home/linlin/linlin/word
  /home/linlin/linlin/code/.sum.sh.swp
  /home/linlin/linlin/code/a.out
  /home/linlin/linlin/code/file.txt
  /home/linlin/linlin/code/test3.c
通过示例,我们可以看到,在创建了一个名为locate.test文件后,马上使用locate进行查找,但却并没有
找到此文件,由于locate是根据全文件系统数据库进行查找,到此数据库并非每时每刻都在不断更新,所
以并没有找到locate.test文件,但却将所有文件名和locate.test有一点相似的文件都查了出来,表示
locate属于模糊查找
locate查找的优点是速度快

find:实时查找,精确查找,并且支持众多查找标准
      通过遍历指定目录下的所有文件,与目标文件匹配,因此find查找速度相对于locate更慢
      使用:find 查找路径 查找标准 查找到后的处理动作
      当查找路径省略时,默认为当前目录
      查找标准默认为指定路径下的所有文件
      处理操作默认为打印到标准输出
      linlin@ubuntu:~/linlin/text$ touch find.test
   linlin@ubuntu:~/linlin/text$ find find.test
   find.test
   
   匹配标准:
       -name 文件名:根据文件名精确匹配,严格区分大小写
       支持文件名通配符,* ? []
       -iname 文件名:根据文件名精确匹配,但不区分大小写
      
       -regex MODE:基于模式实现文件名匹配
      
       -user 用户名:根据文件属主匹配
       -group 组名:根据文件属组匹配
       当用户,或用户组被删除后,就无法根据属主名,属组名查找,这是就需要用到-uid -gid
       -uid UID:根据UID匹配
       -gid GID:根据GID匹配
      
       -nouser:查找没有属主的文件
       -nogroup:查找没有属组的文件
      
       -type 文件类型:根据文件类型查找
      
       -size [+|-]数字单位:根据文件大小查找
       单位:k M G,默认单位为字节
       [+|-]: 表示大于或小于
       查找时,范围是指定数值到指定数值减一个单位长度的数值之间
      
    组合查找条件:
    -a:与
    -o:或
    -not:非
    默认为与操作
   
    根据时间戳查找:
        时间的某一刻,单位为天
        -mtime 数字:根据修改时间
        -ctime 数字:根据改变时间
        -atime 数字:根据访问时间
       时间段
       [+|-]:+ 表示指定时间之前,- 表示指定时间到当前时间
      
       单位为分钟
       -mmin, -cmin, -amin
      
   根据文件权限查找:
       -perm -MODE:查找时每一组权限都必须精确匹配
       -perm /MODE:查找时只要有一组权限匹配即可
      
   执行动作:
       -print:显示
       -ls:类似于ls -l命令,显示查找到的每一个文件的具体信息
          在需要对查找到的文件执行其他命令时:
              -ok COMMAND {} ;
              -exec COMMAND {} ;
              {}: 表示引用查找到的文件的文件名
             
            
which 选项 COMMAND:寻找可执行文件
    -a:将所有查找到的命令都列出来,而不是只显示第一个找到的命令
   
whereis 文件类型 目标文件:寻找特定文件
    -b:只找二进制文件
    -m:只找在帮助文件manual路径下的文件
    -s:只找源文件
    -u:没有帮助文件的文件
            
      
     

原文地址:https://www.cnblogs.com/lnlin/p/7052660.html