- N +

Linux基础知识:文件查找

Linux的文件查找操作起来要比windows复杂,但功能却比windows强大的多,下面就介绍一下Linux系统如何进行文件查找。

locate:
       非实时,模糊匹配,查找是根据全系统文件数据库进行的;
       #updatedb: 手动生成文件数据库 (刚装完系统可能无法使用locate命令)
       优势:速度快

find:
        实时
        精确
        支持众多查找标准
        遍历指定目录中的所有文件完成查找,速度慢;

find 查找路径  查找标准  查找到以后的处理动作
查找路径:默认为当前目录
查找标准:默认为指定路径下的所有文件
处理动作:默认为显示

匹配标准:
       -name 'FILENAME':对文件名作精确匹配
             *:任意长度的任意字符
            ?:单个任意字符
             []:

        -iname 'FILENAME':文件名匹配不区分大小写
        -regex  PATTERN:基于正则表达式进行文件名匹配
       
        -user USERNAME:根据文件属主查找
        -group GROUPNAME:根据属组查找
  
        -uid UID:根据UID查找
        -gid GID:根据GID查找

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

        -type:
               f: 普通文件
               d:目录
               c: 字符设备
               b:块设备
               l: 链接文件
               s:套接字文件
              
         -size:
               [+|-]#k:[大于|小于]几k
               #M
               #G
               大小法则:在查找1M的文件,0-1M都认为是1M
                                在查找10K的文件,9.01k-10K都认为是10k
         
组合条件:
       -a(表示and)
       -o(表示or)
       -not
        两个条件,默认为“与”操作

例如:#find ./ -not -user user1 -o -not -type d  查找当前目录下用户不是user1或者类型不是目录的文件
       或#find ./ -not \( -user user1 -a -type d \)

       -mtime:修改时间(天)
       -ctime:改变时间
       -atime:访问时间
              [+|-]#
                      例如: -atime -5 最近5天内访问过
                                 -atime +5 至少5天没访问了
               
         -mmin:修改时间(分钟)
         -cmin
         -amin
               [+|-]#
                       例如: -amin +5  至少有5分钟没访问了
         
         -perm MODE 精确匹配
                  -mode 文件权限能完全包含此MODE时才能显示
                  /mode 任何一位权限匹配都行
                       例如:#find ./ -perm 644  精确匹配644权限的文件
                                 #find ./ -perm /640  只要匹配到一个就可以了
                                 #find ./ -perm -644  对应的权限位完全包含644,就可以,例如755权限的文件包含644
                                
                                 -644
                                  644: rw-r--r--
                                  755: rwxr-xr-x
                                  750: rwxr-x---

                                  例如:find ./ -perm -001 其他用户有执行权限
                                            find ./ -perm -022 组或其他用户有写权限

动作:
      -print: 显示(默认)
      -ls:类似ls -l的形式显示每一个文件的详细信息
      -ok COMMAND {} \; 每一次操作都需要用户确认
      -exec COMMAND {} \; 不需要用户确认
      例如:find ./ -type d -exec chmod +x {} \; 找到目录并添加执行权限
                find ./ -perm -020 -exec mv {} {}.new \; 找到属组有写权限的文件,并改名为文件名.new
                find ~/ -name "*.sh" -a -perm -111 -exec chmod o-x {} \;  找到家目录下所有以sh结尾的并且所有用户都有执行权限的文件,然后取出其他用户的执行权限
       | xargs COMMAND
返回列表
上一篇:Linux基础知识:grep及正则表达式
下一篇:Linux基础知识:管道及IO重定向
留言与评论(共有 0 条评论)
   
验证码: