首页 > 代码库 > find 命令

find 命令

linux 的文件查找    
    locate  使用数据库查找 速度快 模糊匹配     
    find    实时查找 精确匹配 速度慢     
    
    find [查找位置] [查找标准] [处理动作]     
        
        查找位置 默认当前位置     
        查找标准 默认当前目录下所有文件     
        处理动作 显示到标准输出     
        
        
    查找标准     
            -name 根据文件名查找     
            -iname 忽略大小写     
            
            -user username  根据用户名查找     
            -group groupname 根据用户组名查找     
            
            -uid UID     
            -gid GID     
            
            -nouser     
            -nogroup     
            
            -type     
                    f 普通文件     
                    d 目录文件     
                    b 块设备     
                    c 字符设备     
                    l 链接文件     
                    
            -size    12M 11-12之间的文件大小  M 大写     
                    12k k小写     
                    + 大于     
                    - 小于     
                    
            与时间有关的选项:共有 -atime, -ctime 与 -mtime ,以 -mtime 说明     
           -mtime  n :n 为数字,意义为在 n 天之前的『一天之内』被更动过内容的文件;     
           -mtime +n :列出在 n 天之前(不含 n 天本身)被更动过内容的文件档名;     
           -mtime -n :列出在 n 天之内(含 n 天本身)被更动过内容的文件档名。     
           -newer file :file 为一个存在的文件,列出比 file 还要新的文件档名     
           
           +4代表大於等於5天前的档名:ex> find /var -mtime +4     
           -4代表小於等於4天内的文件档名:ex> find /var -mtime -4     
           4则是代表4-5那一天的文件档名:ex> find /var -mtime 4     
          
            -amin     
            -mmin     
            -cmin     
            
            -perm [+|-] mode     
                        没有+-表示精确权限匹配     
                        + 任何一类用户的任何一位权限匹配即可     
                        -    每类用户的每位权限都匹配     
                        
            处理动作     
                    -print: 显示     
                    -ls     
                    -exec command {} \;     
                    
                2、查找/usr目录下不属于root,bin,或student的文件;     
                       find /usr -not \( -user root -o -user bin -o -user student \)     
                       find /usr -not -user root -a -not -user bin -a -not -user student

                3、查找/etc目录下最近一周内内容修改过且不属于root及student用户的文件;    
                      find /etc -mtime -7 -a -not -user root -a -not -user student     
                      find /etc -mtime -7 -a -not \( -user root -o -user student \)

                4、查找当前系统上没有属主或属组且最近1天内曾被访问过的文件,并将其属主属组均修 

                     改为root;    
                      find / \( -nouser -o -nogroup \) -a -atime -1 -exec chown root:root {} \;

                5、查找/etc目录下大于1M的文件,并将其文件名写入/tmp/etc.largefiles文件中;    
                      find /etc -size +1M -exec echo {} >> /tmp/etc.largefiles \;     
                      find /etc -size +1M >> /tmp/etc.largefiles

                6、查找/etc目录下所有用户都没有写权限的文件,显示出其详细信息;    
                      find /etc -not -perm +222