1. 概述

    1. 继续 find
    2. 这次的内容, 参数稍微要 复杂那么一丢丢
  2. 背景

    1. 刚学会了 基础 的参数
    2. 现在来了解一些 时间 和 空间 的参数
      1. 一说到操控时间空间, 感觉立马起来了...
  3. 准备

    1. OS

      1. centos7
    2. 用户
      1. root

1. linux 文件时间戳

  1. 概述

    1. linux 文件时间戳回顾
  2. 时间戳

    1. linux 文件有 3 个时间戳

      1. a

        1. 访问, 读入内存
      2. c
        1. 修改元数据, inode 数据
      3. m
        1. 修改数据, 文件数据
  3. find 与时间

    1. 支持

      1. find 支持这三种时间, 作为约束条件
      2. 但是三种又 大同小异
      3. 所以, 我只选择 mtime 来做演示

2. find 时间参数的一些格式

  1. +n

    1. > n

      1. 以 时间为例, 单位是 分钟

        1. n = 1, 范围是 [1:00, 无穷大]
  2. -n

    1. < n

      1. 以 时间为例, 单位是 分钟

        1. n = 1, 范围是 [0:00, 1:00]
  3. n

    1. 精确 = n

      1. 也不是很精确
      2. 以 时间为例
        1. n = 1, 范围是 [0:00, 1:00]
        2. n = 2, 范围是 [1:00, 2:00]
  4. 其他

    1. 作用范围

      1. 时间

        1. min 类选项
        2. time 类选项
      2. 空间
        1. size 类选项
    2. 区间的端点, 可能会不那么精确

      1. 查找的时候, 尽量不要让要找的内容, 在 时间边界 上

3. 约束: mmin, mtime

  1. 概述

    1. 编辑时间的约束
    2. 另外两个时间风格类似, 就不重复介绍了
  2. 选项

    1. -mmin

      1. 概述

        1. 编辑时间过滤
        2. 单位是 min
      2. 作用

        1. 查找 最后编辑时间, 在 n 分钟的内容
    2. -mtime

      1. 概述

        1. 编辑时间过滤
        2. 单位是 天
        3. 无视 时区
      2. 作用

        1. 查找 最后编辑时间, 在 n 天的内容
  3. 命令

    # 查询 编辑时间距现在在 [1:00, 2:00] 区间内的内容
    > find /etc -mmin 2
    # 查询 编辑时间距现在在 [0:00, 2:00] 区间内的内容
    > find /etc -mmin -2
    # 查询 编辑时间距现在在 [2:00, 正无穷] 区间内的内容
    > find /etc -mmin +2 # 查询 编辑时间距现在在 [1day, 2day] 区间内的内容
    > find /etc -mtime 2
    # 查询 编辑时间距现在在 [0day, 2day] 区间内的内容
    > find /etc -mtime -2
    # 查询 编辑时间距现在在 [2day, 正无穷] 区间内的内容
    > find /etc -mtime +2
  4. 其他参数

    1. atime

      1. amin
      2. atime
    2. ctime
      1. cmin
      2. ctime

4. 约束: newer

  1. 概述

    1. 编辑时间的维度
    2. 这次的参数, 是另一个 参照物文件
  2. -newer

    1. 作用

      1. 后面跟一个文件

        1. 比这个文件 更新的内容, 会被 搜索出来
      2. 疑问: 有 older 吗?

        1. 这个我目前没有找到...
  3. 命令

    > find /etc -newer /etc/passwd
  4. 其他参数

    1. atime

      1. anewer
    2. ctime
      1. cnewer

5. 约束: size

  1. 概述

    1. 文件大小相关的约束
  2. -size

    1. 作用

      1. 以 文件大小作为 约束条件
    2. 单位

      1. b

        1. 不是 byte
        2. 大小为 512 byte
        3. 为什么是这个奇怪的大小
          1. 很多硬盘的 block, 刚好也是这个大小
          2. 不知道是先有哪个, 反正这俩大小刚好一样
      2. c

        1. byte / B
      3. w

        1. 2bytes
      4. k

        1. KB
      5. M

        1. MB
      6. G

        1. GB
    3. 我也不知道为啥

      1. M 以下的都要小写
    4. 常用

      1. ckMG 四个足矣
  3. 例子

    # 查找大小为 1k 的文件
    > find /etc -size 1k
    # 查找大小小于 1k 的文件
    > find /etc -size -1k
    # 查找大小大于 1k 的文件
    > find /etc -size +1k
    # 这个 -/+ 上面有说, 我就不再提了

ps

  1. ref

    1. find(1) - Linux man page
  2. 后续

    1. 文件的范围与层次

      1. depth
      2. 复合的range
  3. 感觉

    1. 这个地方单独提出来的理由

      1. 上一篇讲得东西, 感觉是 最日常 的
      2. 这里的东西, 稍微日常一点, 而且 那个参数格式的东西, 第一次见到的话, 可能要蒙圈一下
        1. 我也不知道, 是不是我第一次见到的那个人, 讲得太烂...
    2. 下一篇可能是最后了吧
      1. 其实还有 exec {} \ 的内容, 但是 理解了 xargs 之后, 会发现 xargs 其实更加强大

        1. 所以我打算用 xargs 来处理类似的需求

Linux - Shell - find - 进阶: 时间与大小的更多相关文章

  1. linux shell编程进阶学习(转)

    第一节:基础 ls -lh  ——可以用户友好的方式看到文件大小 file 文件名 ——查看文件类型 stat 文件名 ——查看文件当前状态 man 命令/函数名 ——查看详细的帮助文档 man中看某 ...

  2. Linux shell脚本进阶使用

    shell的循环控制语句 - continue:提前结束某次循环,重新开始下一次 - break:提前结束某层循环 范例: #求100以内的奇数和 #!/bin/bash sum=0 for i in ...

  3. linux shell 获取当前日期/时间

    1. 当前日期 [root@Tomcat DFJR-ERP]# cur_date="`date +%Y-%m-%d`" [root@Tomcat DFJR-ERP]# echo $ ...

  4. linux查看文件具体时间和大小

    查看具体时间 ll --full-time 查看文件大小: ll -ht 或者du -sh *

  5. Linux - Shell - find - 进阶: 范围

    概述 继续昨天的 find 背景 还有一些 过滤条件 1. 约束: 目录层数 概述 约束目录的层级 选项 -maxdepth 作用 约束最大目录层级 相对路径 -mindepth 作用 约束最小目录层 ...

  6. Linux shell 获取当前时间之前N天

    date +%Y%m%d --date '2 days ago' 更多资料关注:www.kootest.com ;技术交流群:182526995

  7. linux在shell中获取时间

    linux在shell中获取时间 获得当天的日期 date +%Y-%m-%d 输出: 2011-07-28 将当前日期赋值给DATE变量DATE=$(date +%Y%m%d) 有时候我们需要使用今 ...

  8. linux shell脚本之-变量极速入门与进阶(1)

    1,如果创建shell脚本? 使用任意文本编辑软件,一般为vim,创建.sh结尾的文件,在文件的最开头用 #!/bin/bash 注明shell的类型 如: ghostwu@dev:~/linux/s ...

  9. Shell初学(六)Linux Shell 时间运算以及时间差计算方法

    Linux Shell 时间运算以及时间差计算方法 时间的加减,以及时间差的计算. 1. 时间加减 这里处理方法,是将基础的时间转变为时间戳,然后,需要增加或者改变时间,变成 秒. 如:1990-01 ...

随机推荐

  1. P1341 无序字母对【欧拉路径】- Hierholzer模板

    P1341 无序字母对 提交 24.87k 通过 6.80k 时间限制 1.00s 内存限制 125.00MB 题目提供者yeszy 难度提高+/省选- 历史分数100 提交记录 查看题解 标签 福建 ...

  2. Wannafly Winter Camp 2020 Day 5J Xor on Figures - 线性基,bitset

    有一个\(2^k\cdot 2^k\) 的全零矩阵 \(M\),给出 \(2^k\cdot 2^k\) 的 \(01\) 矩阵 \(F\),现在可以将 \(F\) 的左上角置于 \(M\) 的任一位置 ...

  3. 数据库SQL语法到MySQL实操

    一.基础 1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop database dbname 3.说明:备份sql server--- 创建 ...

  4. 堆之*bin理解

    在程序运行中,使用bins结构对释放的堆块进行管理,以减少向系统申请内存的开销,提高效率. chunk数据结构 从内存申请的所有堆块,都使用相同的数据结构——malloc_chunk,但在inuse和 ...

  5. 精简Command版SqlHelper

    我在写CSharp程序对数据库进行操作时发现Connection对象起到了连接数据库的做用,实际执行SQL语句使用的是Command对象的方法,所以对SqlHelper进行了重写,具体如下: 一.创建 ...

  6. Dubbo-服务注册中心之AbstractRegistry

    在dubbo中,关于注册中心Registry的有关实现封装在了dubbo-registry模块中.提供者(Provider)个消费者(Consumer)都是通过注册中心进行资源的调度.当服务启动时,p ...

  7. 用数学解赌博问题不稀奇,用赌博解数学问题才牛B

    有一个经典的概率问题:平均需要抛掷多少次硬币,才会首次出现连续的 n 个正面?它的答案是 2^(n+1) – 2 .取 n=2 的话,我们就有这样的结论:平均要抛掷 6 次硬币,才能得到两个连续的正面 ...

  8. 微信小程序open-data userAvatarUrl圆角显示

    从年初开始,打开小程序,工具栏都会弹出这个提醒: 也就是,默认不弹出授权询问框,默认获取不到用户信息(头像.昵称等)! 如果你需要用到这个接口,可以尝试以下方法: 1.用 button 组件,将属性名 ...

  9. Python之路Day08

    文件操作 open() -- 打开 open通过Python控制操作系统打开文件 f=open('文件路径',mode='r',encoding='utf-8') mode -- 不写就默认是r f ...

  10. [APIO2010] 回文串 - 回文自动机

    经典题吧 我觉得我要换个板子,这结构体板子真TM不顺手 #include <bits/stdc++.h> using namespace std; const int N = 2e6 + ...