• Linux find命令


    文件查找

        locate:非实时查找,基于数据库(索引)查找,模糊查找,但速度快;

            需要事先构建索引(数据库),一般是定期(周期性任务)的在系统空闲时自动构建索引;索引构建过程需要遍历整个根文件系统,极其耗费资源;

        find:实时查找,精确查找,速度慢;

            通过遍历指定路径下的所有文件来进行查找;

            find [options] … [文件路径] [查找条件] [处理动作]

                文件路径:指定具体目标路径,默认为当前目录;

                查找条件:指定的查找标准,可以是文件名、文件大小、文件权限等,默认为指定路径下的所有文件;

                处理动作:对符合条件的文件做什么动作,默认为输出到屏幕上;

                    查找条件:

                        根据文件名查找

                            -name "filename" :支持使用glob;

                            -iname:查找时不区分大小写;

                            -regex "pattern":支持按正则表达式匹配,根据模式匹配整个文件路径字符串,而不仅仅是文件名;

                        根据属主,属组查找

                            -user:根据用户名查找;

                            -group:根据组名查找;

                            -uid:根据uid查找;

                            -gid:根据gid查找;

                            -nouser:查找没有属主的文件;

                            -nogroup:查找没有属组的文件;

                        根据文件类型查找

                            -type:指定类型查找;

              f:文件类型

              d:目录类型

              l:链接

              p:管道

              c:字符设备类型

              b:块设备类型

          组合条件查找:可能会用到摩根定律;
                           -a:并且;                    

                            -o:或者;

                            -not:非;

                            如果使用括号的话,需要转义字符转义;

                        根据文件大小查找

                            -size [+|-]:(n-1,n]  按照大小查找;常用单位有K、M、G;

                                +:(n,∞)

                                -:[0,n-1]

                        根据时间戳查找

                            以天为单位查找:

                                -atime [+|-]:[n,n+1]访问时间

                                    +:(n+1,∞)

                                   -:[0,n)

                                -ctime:改变时间;

                                -mtime:修改时间;

                            以分钟为单位:

                                -amin[+|-]:用法同上;

                                -cmin:

                                -mmin:

                        根据权限查找

                            -perm[+|/|-] MODE:

                                /:任何一类对象(user,group,other)只要有一类的任何一个权限位能匹配上就符合;

                                -:三类对象都要匹配并且权限位也要全部匹配,只可多不能少;

                        处理动作

                            -print:默认的处理动作,显示至屏幕;

                            -ok COMMAND {} ; :对查找到的文件执行由COMMAND命令指定的动作;交互式的;

                            -exec COMMAND {} ; :对查找到的文件执行由COMMAND命令指定的动作;非交互式;

                                Note:find传递查找到的文件给后面指定的命令时,会将查找到的符合条件的文件一次性的全部传递给后面的命令;有些命令不能接受过多的参数,会导致命令执行失败;可以使用find | xargs  command 处理,但是并不是所有命令(command)都支持xargs;xargs一次只接受一条信息处理;

                                find /path/to/somewhrer -user root -exec mv {} {}.new ;  可实现改名操作;

                                {}:表示每一个被find查找到的符合条件的文件;

                            -delete:删除查找到的文件;

                            -fls  /path/to/somefile :将查找到的文件按照长格式保存至指定文件中;

                            -ls:类似于对查找到的文件做ls -l操作;

       注:根据马哥视频做的笔记,如有错误,欢迎指正;侵删

     

     

     

  • 相关阅读:
    求字符串的全排列
    不能被继承的类
    Apache2启动错误以及Ubuntu update的错误
    从尾到头输出链表
    教你在网页上加QQ链接
    UL LI P 图片加文字无缝滚动
    ASP.net 里怎么对fileUpload控件上传的文件进行管理
    表单标签
    如果我为我女朋友做了这些,她一定会娇滴滴的说:“你真坏!
    break,continue,return
  • 原文地址:https://www.cnblogs.com/guowei-Linux/p/9787340.html
Copyright © 2020-2023  润新知