linux文件搜索


 

1、locate  --->文件查找事先生成的数据库,模糊查找,updatedb更新locate数据库
     -i  : 忽略文件名的大小写
     -n  : 只显示前n行  eg:locate -n 3 passwd
   2、find    ---->实时查找,精确匹配文件名
         find [DIR  ...] [CRIERIA] [ACTION...]
           DIR:/root /home .. (默认当前目录)
           ACTION;
               -print (默认)
               -ls 
               -ok   COMMAND  交互式执行命令
               -exec  COMMAND  非交互式执行命令
               xargs     从标准输出中执行和创建命令
                 eg;find /root -name "[[:alpha:]][[:digit:]]" -exec mv {} {} \;  //{}代表前面查找的结果,后面必须用\;结尾
                     find /root -name "[[:alpha:]][[:digit:]]"  | xargs chmod 755
            CRIERIA:
               -name :精确到指定的文件名
               -iname: 根据文件名查找,但不区分大小写
               -user :根据属主查找
               -group:根据属组查找
               -uid  :根据uid查找
               -gid  :根据gid查找
               在指定时间段里查找:
               -atime: [+/-]N (access time)  :+-表示---(+)----N---(-)----currentday
                       eg:find -atime -3 -exec ls -l {} \;
               -mtime:    (modification time)同上
               -ctime    (change time)    同上
               
               -amin   以分种为单位,同上
               -mmin
               -cmin
               
               -anewer  a.txt  比a.txt更近的访问
                       eg:  find -anewer sh01.sh -exec ls -l {} \;
               -newer            相当于modification time
               -cnewer           相当于change time
               -type:按照类型查找
                          d(目录),l(链接文件),f(普通文件),s(套接文件),
                          b(块设备),c(字符设备),p(命令管道文件)
                       eg:find /var  -type l  -exec ls -l {} \;
               -size: 按照大小查找
                 [+/-]N
               -perm [+/-]mode 根据权限查找
                      mode 755
                      -222 每一类用户都要匹配
                      eg:find /tmp/myscrip  -perm -001
                      /222 某一个用户只要有一类权限的即可
               -nouser :没有用户
                        eg: find / -nouser  查看没有用户名的文件,一般这种文件有一定的危险性
               -nogroup:没有组的
               
           
               查找条件连接:
                      -a        :&& 通常可以省略
                      eg: find -user  root -type f -exec ls -dl {} \;
                      -o        :||
                      eg:find -user named -o -type d  -exec ls -ld {} \;
                      -not or ! :!
                      eg:find -not \( -type d -a -user root \) -exec ls -ld {} \;
               
               
               -ls -l `find / -name passwd`
               
               文件名通配:*任意一个字符,?单个字符,[]
                eg: find /tmp -name a* //查找以a开头的文件

本文出自 “IT梦-齐-分享” 博客

 

相关内容

    暂无相关文章