zoukankan      html  css  js  c++  java
  • [20210625]find -mtime +N N -N时间问题补充.txt

    [20210626]find -mtime +N N -N时间问题补充.txt

    --//昨天find -mtime的测试,为了更好的说明问题,做一个例子:
    --//还有另外一个原因确定是否包括等于的情况.

    --//后记:应该写成Q second , 不过不影响测试结果.就是升序第3个日期的时间部分表示当时时间(时分秒).

    $ mkdir aaa
    $ cd aaa

    $ seq -3 1 2 | xargs -IQ  date "+%Y%m%d%H%M.%S" --date='2 days ago Q seconds ago' | xargs -IQ touch -t Q Q ; find . -mtime +1 -exec ls -ltr {} +; echo ======  ; ls -ltr
    -rw-r--r-- 1 oracle oinstall 0 Jun 23 15:53 ./202106231553.13
    -rw-r--r-- 1 oracle oinstall 0 Jun 23 15:53 ./202106231553.14
    ======
    total 0
    -rw-r--r-- 1 oracle oinstall 0 2021-06-23 15:53:13 202106231553.13
    -rw-r--r-- 1 oracle oinstall 0 2021-06-23 15:53:14 202106231553.14
    -rw-r--r-- 1 oracle oinstall 0 2021-06-23 15:53:15 202106231553.15
    -rw-r--r-- 1 oracle oinstall 0 2021-06-23 15:53:16 202106231553.16
    -rw-r--r-- 1 oracle oinstall 0 2021-06-23 15:53:17 202106231553.17
    -rw-r--r-- 1 oracle oinstall 0 2021-06-23 15:53:18 202106231553.18

    --//看出分界点了吗?执行时的当前时间是2021-06-25 15:53:15.我测试多次find -mtime +1 都是显示2条,注意执行前删除前面测试的文件.
    --//实际上比较准确的时间点是 小于 当前时间-2天.

    $ rm -f 2021*
    --//记住每次测试前执行它,后面不再提及

    $ seq -3 1 2 | xargs -IQ  date "+%Y%m%d%H%M.%S" --date='2 days ago Q seconds ago' | xargs -IQ touch -t Q Q ; find . -mtime 1 -exec ls -ltr {} +; echo ======  ; ls -ltr
    --//注意执行的是find . -mtime 1
    -rw-r--r-- 1 oracle oinstall 0 Jun 23 15:55 ./202106231555.52
    -rw-r--r-- 1 oracle oinstall 0 Jun 23 15:55 ./202106231555.53
    -rw-r--r-- 1 oracle oinstall 0 Jun 23 15:55 ./202106231555.54
    -rw-r--r-- 1 oracle oinstall 0 Jun 23 15:55 ./202106231555.55
    ======
    total 0
    -rw-r--r-- 1 oracle oinstall 0 2021-06-23 15:55:50 202106231555.50
    -rw-r--r-- 1 oracle oinstall 0 2021-06-23 15:55:51 202106231555.51
    -rw-r--r-- 1 oracle oinstall 0 2021-06-23 15:55:52 202106231555.52
    -rw-r--r-- 1 oracle oinstall 0 2021-06-23 15:55:53 202106231555.53
    -rw-r--r-- 1 oracle oinstall 0 2021-06-23 15:55:54 202106231555.54
    -rw-r--r-- 1 oracle oinstall 0 2021-06-23 15:55:55 202106231555.55

    --//当前时间是2021-06-25 15:55:52,
    --//find . -mtime 1 的查询时间范围的下边界是 大于等于 当前时间-2天.

    $ seq -3 1 2 | xargs -IQ  date "+%Y%m%d%H%M.%S" --date='1 days ago Q seconds ago' | xargs -IQ touch -t Q Q ; find . -mtime 1 -exec ls -ltr {} +; echo ======  ; ls -ltr ; rm -f 202106*
    -rw-r--r-- 1 oracle oinstall 0 Jun 24 16:12 ./202106241612.50
    -rw-r--r-- 1 oracle oinstall 0 Jun 24 16:12 ./202106241612.51
    ======
    total 0
    -rw-r--r-- 1 oracle oinstall 0 2021-06-24 16:12:50 202106241612.50
    -rw-r--r-- 1 oracle oinstall 0 2021-06-24 16:12:51 202106241612.51
    -rw-r--r-- 1 oracle oinstall 0 2021-06-24 16:12:52 202106241612.52
    -rw-r--r-- 1 oracle oinstall 0 2021-06-24 16:12:53 202106241612.53
    -rw-r--r-- 1 oracle oinstall 0 2021-06-24 16:12:54 202106241612.54
    -rw-r--r-- 1 oracle oinstall 0 2021-06-24 16:12:55 202106241612.55

    --//当前时间是2021-06-25 16:12:52
    --//find . -mtime 1 的查询时间范围的上边界是 小于 当前时间-1天.

    $ seq -3 1 2 | xargs -IQ  date "+%Y%m%d%H%M.%S" --date='1 days ago Q seconds ago' | xargs -IQ touch -t Q Q ; find . -mtime -1 -exec ls -ltr {} +; echo ======  ; ls -ltr ; rm -f 202106*
    -rw-r--r-- 1 oracle oinstall    0 Jun 24 16:19 ./202106241619.35
    -rw-r--r-- 1 oracle oinstall    0 Jun 24 16:19 ./202106241619.36
    -rw-r--r-- 1 oracle oinstall    0 Jun 24 16:19 ./202106241619.37
    -rw-r--r-- 1 oracle oinstall    0 Jun 24 16:19 ./202106241619.38

    .:
    total 0
    -rw-r--r-- 1 oracle oinstall 0 Jun 24 16:19 202106241619.33
    -rw-r--r-- 1 oracle oinstall 0 Jun 24 16:19 202106241619.34
    -rw-r--r-- 1 oracle oinstall 0 Jun 24 16:19 202106241619.35
    -rw-r--r-- 1 oracle oinstall 0 Jun 24 16:19 202106241619.36
    -rw-r--r-- 1 oracle oinstall 0 Jun 24 16:19 202106241619.37
    -rw-r--r-- 1 oracle oinstall 0 Jun 24 16:19 202106241619.38
    ======
    total 0
    -rw-r--r-- 1 oracle oinstall 0 2021-06-24 16:19:33 202106241619.33
    -rw-r--r-- 1 oracle oinstall 0 2021-06-24 16:19:34 202106241619.34
    -rw-r--r-- 1 oracle oinstall 0 2021-06-24 16:19:35 202106241619.35
    -rw-r--r-- 1 oracle oinstall 0 2021-06-24 16:19:36 202106241619.36
    -rw-r--r-- 1 oracle oinstall 0 2021-06-24 16:19:37 202106241619.37
    -rw-r--r-- 1 oracle oinstall 0 2021-06-24 16:19:38 202106241619.38
    --//感觉输出有点奇怪,实际存在一个目录.在作怪,因为. 在find . -mtime -1 的范围包括.目录,改写如下:

    $ seq -3 1 2 | xargs -IQ  date "+%Y%m%d%H%M.%S" --date='1 days ago Q seconds ago' | xargs -IQ touch -t Q Q ; find . -name "202106*" -mtime -1 -exec ls -ltr {} +; echo ======  ; ls -ltr ; rm -f 202106*
    -rw-r--r-- 1 oracle oinstall 0 Jun 24 16:22 ./202106241622.54
    -rw-r--r-- 1 oracle oinstall 0 Jun 24 16:22 ./202106241622.55
    -rw-r--r-- 1 oracle oinstall 0 Jun 24 16:22 ./202106241622.56
    -rw-r--r-- 1 oracle oinstall 0 Jun 24 16:22 ./202106241622.57
    ======
    total 0
    -rw-r--r-- 1 oracle oinstall 0 2021-06-24 16:22:52 202106241622.52
    -rw-r--r-- 1 oracle oinstall 0 2021-06-24 16:22:53 202106241622.53
    -rw-r--r-- 1 oracle oinstall 0 2021-06-24 16:22:54 202106241622.54
    -rw-r--r-- 1 oracle oinstall 0 2021-06-24 16:22:55 202106241622.55
    -rw-r--r-- 1 oracle oinstall 0 2021-06-24 16:22:56 202106241622.56
    -rw-r--r-- 1 oracle oinstall 0 2021-06-24 16:22:57 202106241622.57

    --//当前时间是2021-06-25 16:22:54.
    --//find . -mtime -1 的查询时间范围是 大于等于 当前时间-1天.

    总结:
    1.感觉测试在细节上浪费时间.
    2.总之清楚一点,大致总结如下:
    find -mtime +N 表示 小于 <当前时间-(N+1)天 .
    find -mtime +1 表示 在   >=当前时间-(N+1)天 <当前时间-(N)天 之间.
    find -mtime -1 表示 大于 >=当前时间-(N)天.

    --//我敢打赌许多人在这个问题的理解上都是错误的.

  • 相关阅读:
    k8s Helm安装Prometheus Operator
    maven私有库神坑之:“Downloading: http://repo.maven.apache.org/maven2/”深坑!!!!!!坑害了一周时间
    docker java基础镜像
    helm安装EFK
    helm部署redis主从和哨兵模式
    k8s资源存储pv pvc 动态持久化存储StorageClass
    k8s service概述
    harbor镜像仓库原理和安装
    制作免费的https证书
    OpenStack点滴03-Neutron
  • 原文地址:https://www.cnblogs.com/lfree/p/14932683.html
Copyright © 2011-2022 走看看