码迷,mamicode.com
首页 > 系统相关 > 详细

Linux文件查找

时间:2015-08-16 00:50:32      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:find   locate   区分大小写   数据库   update   表达式   

文件查找

1、locate 根据全系统文件数据库进行查找(非实时的,系统每天特定时间对系统中所有文件都进行收集存库)(非实时模糊查找)

update  手动生成文件数据库(运行一遍要很长时间)

2、find  (实时精确遍历系统目录文件)

使用方法:find 查找路径 查找标准 查找后的处理动作

    查找路径:默认为当前目录

    查找标准:默认为指定路径下的所有文件

    处理动作:默认为打印到屏幕上

            -name  FILENAME

                 支持通配符

            -iname  FILENAME    不区分大小写

            -regex PATTERN 基于正则表达式

            -user USERNAME 根据属主查找

            -user GROP  根据属组查找

            -uid ID  根据用户id查找

            -gid ID  根据组id查找

            -nouser 查找没有属主的文件

            -nogroup 查找没有属组的文件

 

            -type 根据文件类型来查找

               f:普通文件

               d:目录

               c  b  l  p  s...

            -size 根据文件大小来查找  (  小于整数时向上取整 )

               [+|-]#K       

               [+|-]#M

               [+|-]#G

  

            组合条件

                  -a

                  -o

                  -not

                例:find /tmp  -nouser -a type d

                find /tmp -not -type d

                find ./ -not \(-user user1 -o -user user2\)

 

            -mtime   创建时间(天)

            -ctime    修改时间(天)

            -atime    访问时间(天)

                 以此刻时间为准向前的时间

            [+ | -]   + time   时间time天之前    

                    - time   时间time天内

            -mmin

            -cmin

            -amin

               [+ | -]     用法和time相同单位为分钟

             

            -pern 权限

        查找某权限的文件

        MODE    权限等于MODE的文件

            /MODE   任意一位匹配就满足条件

            -MODE   文件权限能完全包含此MODE时才符合条件

 

 

            find    执行动作

                -print    显示

                -ls     类似ls -l的形式显示每一个文件的详细信息

              

                -ok  COMMAND {} \:        每一次操作都要用户确认    花括号表示引用查到的文件名

                -exec COMMOAND {} \:       不要用户确认

                例: find ./ -perm -006 -exec chmod o-w {} \:

                     find ./ type d -ok chmod +x {} \:

                     find ./ -perm -020 mv {} {}.new \:

             

                查找内容 | xargs  CPMMAND    将查找到的内容直接使用管道送给xargs   后面跟命令进行处理

                 例: find /etc -size +1M | xargs echo >> /tem/etc.la 

             

 

 总结:

     locate 是从数据库中查找文件,可能因为数据库没有更新而不会实时的查找文件,但是速度会比find快很多

     find是实时的根据路径逐一的对文件进行检索,速度肯定没有locate快,但是会实时查找,总的来说find会比较常用一些。


本文出自 “Mr.Zhu -- 技术交流” 博客,请务必保留此出处http://bjishu.blog.51cto.com/7481301/1684916

Linux文件查找

标签:find   locate   区分大小写   数据库   update   表达式   

原文地址:http://bjishu.blog.51cto.com/7481301/1684916

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!