12、文件查找locate、find

来源:互联网 发布:最新淘宝助理下载 编辑:程序博客网 时间:2024/06/10 01:13
    locate命令:非实时查找,数据库查找(速度快)
        依赖于事先构建的索引;索引在系统较为空闲时自动构建(周期性任务)
        updatedb:构建最新的索引(超级耗资源)
        locate 字符串:搜索所有路径中是否有字符串
        
    find命令:文件系统上查找指定符合条件的文件(实时查找慢)
        find [选项]... [查找路径] [查找条件] [处理动作]
            查找路径:可指定多个路径,默认为当前目录
            查找条件:指定以文件名、大小、类型、权限等条件查找,默认为所有文件
            处理动作:对符合条件的文件做什么操作,默认输出到屏幕
            
            查找条件:
                根据文件名查找
                    -name "文件名":支持使用通配符
                    -iname "文件名":忽略大小写,支持使用通配符
                    -regex "PATTERN":以PATTERN匹配整个文件路径
                根据文件属主、属组查找
                    -user 用户名:查找属主
                    -group 组名:查找属组
                    -uid UID:查找指定UID文件
                    -gid GID:查找指定GID文件
                    -nouser:查找没有属主的文件
                    -nogroup:查找没属组的文件
                根据文件类型查找
                    -type f|d|l...:指定文件类型查找
                根据文件大小查找
                    -size [+|-]大小
                        大小可为:#k,#M,#G
                            3k:查找大于2k小于等于3k的文件
                            -3k:查找小于等于2k的文件
                            +3k:查找大于3k的文件
                根据时间戳查找
                    以天为单位
                        -atime [+|-]#
                            3:表示大于等于3天小于4天
                            +3:大于等于4
                            -3:小于3天
                        -mtime [+|-]#:
                        -ctime [+|-]#:
                    以分钟为单位
                        -amin [+|-]#:
                        -mmit [+|-]#:
                        -cmin [+|-]#:
                根据权限查找
                    -perm [/|-]777
                        777:精确权限匹配
                        /777:属主、属组、其它中任意读、写、执行权限匹配就行
                            例:/700;属主有读或写或执行权限
                        -777:查找属主权限为7或属组为7或其它为7
                组合条件
                    -a:与(可忽略)
                    -o:或(例:find /home -nouser -o -nogroup)
                    -not|!:非
                        如果有处理动作,组合后需要加括号,例:find /home \( -nouser -o -nogroup \) -ls
                        
            处理动作
                -print:默认的处理动作,显示到屏幕
                -ls:类似ll命令
                -delete:删除查找到的文件
                -fls /file:查到到所有文件的长格式信息保存到文件
                -ok COMMAND {} \; :对查到的文件由COMMAND执行
                    每个文件执行之前,都会交互式要求用户确认
                -exec COMMAND {} \; :对查找到文件执行COMMAND执行
                    {}:用于引用查找到的文件
                    例:find /tmp -cmin -5 -exec mv {} {}.new \;查找tmp下最近5分钟改变过文件并重命名
                
                注意:find查到所有的文件,一次性传递给后面的命令,有些命令接受过多参数,可能会失败可使用
                | xargs COMMAND:一个一个文件传递给COMMAND执行
原创粉丝点击