当前位置: 首页 > news >正文

liunx之find

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
链接学习出自: https://www.cnblogs.com/scrit/p/5854197.html

转载于:https://blog.51cto.com/13989414/2319853

相关文章:

  • [原][粒子特效][spark]插值器interpolator
  • ansible自动化
  • 查看值是否传过来php
  • Java进阶部分的总结,你们都学会了吗?
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • java实现定时任务
  • nginx location if 的匹配规则
  • zabbix 4.0 安装配置
  • spark完整的数据倾斜解决方案
  • 程序员如何选择第一家公司
  • zabbix之 自动发现磁盘io util 监控
  • 通用点赞设计思路
  • MVVM模块化架构
  • EF Core中执行Sql语句查询操作之FromSql,ExecuteSqlCommand,SqlQuery
  • 随手记统一监控平台Focus设计解析
  • 收藏网友的 源程序下载网
  • 【剑指offer】让抽象问题具体化
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • 30秒的PHP代码片段(1)数组 - Array
  • flutter的key在widget list的作用以及必要性
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • Kibana配置logstash,报表一体化
  • Laravel深入学习6 - 应用体系结构:解耦事件处理器
  • MD5加密原理解析及OC版原理实现
  • node学习系列之简单文件上传
  • Python爬虫--- 1.3 BS4库的解析器
  • springMvc学习笔记(2)
  • tweak 支持第三方库
  • 案例分享〡三拾众筹持续交付开发流程支撑创新业务
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 多线程 start 和 run 方法到底有什么区别?
  • 聚簇索引和非聚簇索引
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 数组的操作
  • 提醒我喝水chrome插件开发指南
  • Android开发者必备:推荐一款助力开发的开源APP
  • JavaScript 新语法详解:Class 的私有属性与私有方法 ...
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持 ...
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • #android不同版本废弃api,新api。
  • $ git push -u origin master 推送到远程库出错
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • (7)STL算法之交换赋值
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (PyTorch)TCN和RNN/LSTM/GRU结合实现时间序列预测
  • (二)springcloud实战之config配置中心
  • (分享)一个图片添加水印的小demo的页面,可自定义样式
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (附源码)ssm户外用品商城 毕业设计 112346
  • (七)c52学习之旅-中断
  • .apk 成为历史!
  • .form文件_一篇文章学会文件上传
  • .NET Core 2.1路线图
  • .Net core 6.0 升8.0