首页 > 代码库 > 第十二章:查找与处理文件

第十二章:查找与处理文件

目标
    使用 locate
    使用 find
    使用 Gnome Search tool
    
locate 基于预先定义的数据库定义,这个数据库保存了所有文件的路径和权限

        非实时查询
        数据库必须被管理员更新
            updatedb 更新数据库,然后locate passwd
        完整的路径,不是单个文件名
    只有这个用户对这个文件有读和执行权限
find
    查询时,find比locate慢,实时查询
    查询的时候没有指定路径就以当前目录开始
    在找到的文件后面可以执行命令
    find有基于权限的查询
find的基本案例
    find -name snow.png
        从当前目录查询一个叫snow.png的文件
    find -iname snow.pnd
        忽略大小写
    find / -name ‘*.txt‘
        从根查起以.txt结尾的文件
    find /etc -name ‘*pass*‘
        在etc目录下查找包含pass的文件
    find /home -user joe -group joe
        从home目录下查找用户是joe、组是joe的文件
    find -user joe -not -group  joe
        用户是joe 组不是joe的
    find -user joe -o -user jane
        用户是joe 或者jane
    find -not \(-user joe -o user jane \)
        既不是joe 又不是jane
基于权限的查询
    find -perm 755
        查找系统中所有权限755的文件
    find -perm +222
        任何人能写就匹配
    find -perm -222
        每个人能写才匹配
    find -perm -002
        匹配o+x的
查看垃圾文件
    find  / -size 10M
        从根开始 查找10M大小的文件 //df -h
        
find and Access Times  基于文件的时间戳查询
    -atime
    -mtime
    -ctime
    
    fine /tmp -ctime +10
        文件ctime10天以前的文件
    
    -amin
    -mmin
    -cmin
    find /etc -amin -60
    

find后面接命令
    -exec(不询问) of -ok(询问)
    
    find -size +100M -ok mv {} /tmp/largefile/ \;
                        查询的结果 然后执行命令
案例
    find -name ‘*.conf‘ -exec cp {} {}.orig \;
    find /tmp -ctime +3 -user joe -ok rm {} \;
    find ~ -perm -002 -exec chmod o-w {} \;
    find /home -type d -ls
    find -not -perm  +111 -name ‘*.sh‘ -ok  chmod 755 {} \;
        任何一个位置上都没有x的权限并且是以.sh结尾的文件,加上755
       

第十二章:查找与处理文件