zoukankan      html  css  js  c++  java
  • linux的find命令详解

    find命令是用来在给定的目录下查找符合给定条件的文件
      find [OPTIONS] [查找起始路径] [查找条件] [处理动作]
     
      一、OPTIONS参数
        -P、-L、-H:控制软连接的对待方式,用的不多。不介绍了
     
      二、查找路径
        就是个目录路径,相对和绝对都可以。
     
      三、查找条件
        (一)、根据名称查找
          -name "PATERN"
          -iname "PATERN" :不区分名称字母大小写
          
     
          -regex PATTERN:基于正则表达式的模式查找,匹配的是整个路径,而非单个文件名。
          
     
        (二)、根据文件从属关系查找:
            -user USERNAME:查找属主指定用户的所有文件;
            -group GRPNAME:查找属组指定组的所有文件;
     
            -uid UID:查找属主指定的UID的所有文件;
            -gid GID:查找属组指定的GID的所有文件;
     
            
     
            -nouser:查找没有属主的文件;
            -nogroup:查找没有属组的文件;
            
        (三)、根据文件的类型查找:
          -type:根据不同的文件类型筛选
    f 普通文件
    d 目录文件
    l 符号链接文件
    b 块设备 文件
    c 字符设备文件
    p 管道文件
    s 套接字文件
     
                
     
        (四)、根据文件的大小查找:
            -size [+|-]#UNIT
              常用单位:k, M, G
                #UNIT:(#-1, #]
                -#UNIT:[0,#-1]
                +#UNIT:(#, oo)
                
                1、1k时:a3只有15个字节,也被算做1k也查询,即条件符合大于0k ( #-1 ),小于等于1k (#)
                2、+1k时:a和a1满足大于1k(#)的条件
                3、-62k时:只有a3满足大于等于0,小于等于 61k(#-1)的要求。
     
        (五)、 根据时间戳查找:
            按照atime(文件的最后访问时间)、mtime(文件的最后修改时间)、ctime(文件最后改变时间)三个变量来查询:
              以天为单位,
              -atime [+|-]#
                  #:[#, #-1) :最后访问时间在#天前(大于等于#天前,小于#-1天前)
                        等价于最后访问时间与当前的时间差 大于 (#-1)*24小时,小于等于 #*24小时
                  -#:(#, 0] :最后访问时间在#天以内,不包括24小时前的那一刻。
                        等价于最后访问时间与当前的时间差小于 #*24小时
                  +#:(oo, #-1] :最后访问时间在#-1天以前的。包括#-1天前
                        等价于最后访问时间与当前的时间差大于等于 #*24小时
                      -mtime
                      -ctime
     
          
     
        以“分钟”为单位:
            -amin
            -mmin
            -cmin
     
        -daystart:时间条件的开始先决条件。如果没有的时候,比较的开始时间为当前时间。如果有此参数,则比较的开始时间为当天的23:59:59。
        
     
        查询出来的各个文件名称对应时间如下:
        
     
    文件名 修改时间
    服务器当前时间 09/08 17:34
    a 09/08 17:20
    b 09/07 12:20
    c 09/08 13:20
    d 09/07 22:20
     
        
     
        
     
     
        (六)、根据权限查找
            -perm
            -perm [/|-]mode
              mode:精确权限匹配;
              /mode:任何一类用户(u,g,o)的权限中的任何一位(r,w,x)符合条件即满足;9位权限之间存在“或”关系;
              -mode:每一类用户(u,g,o)的权限中的每一位(r,w,x)同时符合条件即满足。9位权限之间存在“与”关系;
              看案例:
              
                
              (1):精确查找。就是匹配权限值完全相等的;
              
     
              (2):/mode。 只要有一组用户匹配到一个权限即可。
              通俗说:就是属主拥有给定属主权限的某一个,或者数组拥有给定权限的某一个,或者其他用户拥有给定权限的某一个即可。
              
              表示属主拥有执行权限
              或者数组拥有写权限,
              或者其他用户拥有写权限
     
              (3):-mode。并且的关系。
              通俗说:就是给定的属主权限必须拥有。并且给定的数组权限必须拥有。并且给定的其他用户权限必须拥有。
     
              
              表示属主拥有执行权限
              并且数组拥有写权限,
              并且其他用户拥有写权限
     
            处理动作:
              -print:输出至标准输出;默认的动作;
              -ls:类似于对查找到的文件执行“ls -l”命令,输出文件的详细信息;
              -delete:删除查找到的文件;
              -fls /PATH/TO/SOMEFILE:把查找到的所有文件的长格式信息保存至指定文件中;
              -ok COMMAND {} ; :对查找到的每个文件执行由COMMAND表示的命令;每次操作都由用户进行确认;
              -exec COMMAND {} ; :对查找到的每个文件执行由COMMAND表示的命令;
     
              注意:find传递查找到的文件路径至后面的命令时,是先查找出所有符合条件的文件路径,并一次性传递给后面的命令;
     
                但是有些命令不能接受过长的参数,此时命令执行会失败;另一种方式可规避此问题:
                 find | xargs COMMAND
  • 相关阅读:
    LeetCode偶尔一题 —— 617. 合并二叉树
    《剑指offer》 —— 链表中倒数第k个节点
    《剑指offer》 —— 青蛙跳台阶问题
    《剑指offer》—— 二维数组中的查找
    《剑指offer》—— 替换空格
    《剑指offer》—— 合并两个排序的链表
    《剑指offer》—— 礼物的最大价值
    生成Nuget 源代码包来重用你的Asp.net MVC代码
    Pro ASP.Net Core MVC 6th 第四章
    Pro ASP.NET Core MVC 6th 第三章
  • 原文地址:https://www.cnblogs.com/scrit/p/5854197.html
Copyright © 2011-2022 走看看