18910140161

find -mtime 0 0 -0时间问题补充

顺晟科技

2021-07-09 10:31:16

166

ind -mtime +0 0 -0时间问题补充.txt

--//补充find -mtime +0 0 -0时间的测试,估计很少人这样写,实际上大部分人对于find find -mtime +N N -N的理解是错误的。
find -mtime +N 表示 小于 <当前时间-(N+1)天 .
find -mtime N 表示 在 >=当前时间-(N+1)天 <当前时间-(N)天 之间.
find -mtime -N 表示 大于 >=当前时间-(N)天.

--//换一句话+0 0 -0 表示:
find -mtime +0 表示 小于 <当前时间-(1)天 .
find -mtime 0 表示 在 >=当前时间-(1)天 <当前时间-(0)天 之间.
find -mtime -0 表示 大于 >=当前时间-(0)天.

--//为了加强记忆,测试看看:

$ mkdir aaa
$ cd aaa

$ date "+%Y%m%d%H%M.%S.%N";seq -2 1 2 | xargs -IQ date "+%Y%m%d%H%M.%S" --date='Q seconds'
202107080833.13.286667115
202107080833.11
202107080833.12
202107080833.13
202107080833.14
202107080833.15

--//可以发现排序文件后中间的时间表示当时执行命令的时间(注意不看年月日),注:可能存在小量的误差,假设执行很快的情况。
--//如果我在windows下使用cygwin模拟器,执行很慢,就存在这个误差。

$ seq -2 1 2 | xargs -IQ date "+%Y%m%d%H%M.%S" --date='1 day ago Q seconds' | xargs -IQ touch -t Q Q ; find . -name "2021" -mtime +0 -exec ls -ltr {} +; echo ====== ; ls -ltr ; rm -f 2021
-rw-r--r-- 1 oracle oinstall 0 Jul 7 08:36 ./202107070836.20

-rw-r--r-- 1 oracle oinstall 0 Jul 7 08:36 ./202107070836.21

total 0
-rw-r--r-- 1 oracle oinstall 0 2021-07-07 08:36:20 202107070836.20
-rw-r--r-- 1 oracle oinstall 0 2021-07-07 08:36:21 202107070836.21
-rw-r--r-- 1 oracle oinstall 0 2021-07-07 08:36:22 202107070836.22
-rw-r--r-- 1 oracle oinstall 0 2021-07-07 08:36:23 202107070836.23
-rw-r--r-- 1 oracle oinstall 0 2021-07-07 08:36:24 202107070836.24

--//执行时的当前时间是2021-07-08 08:36:22.注意我显示的日期是--dawww.diuxie.comte='1 day ago Q seconds'
--//find . -name "2021*" -mtime +0
--//实际上显示的是 小于 当前时间-1天的手游的文件.

--//后面的测试不再说明了,大家自己看.
$ seq -2 1 2 | xargs -IQ date "+%Y%m%d%H%M.%S" --date='1 day ago Q seconds' | xargs -IQ touch -t Q Q ; find . -name "2021" -mtime 0 -exec ls -ltr {} +; echo ====== ; ls -ltr ; rm -f 2021
-rw-r--r-- 1 oracle oinstall 0 Jul 7 08:38 ./202107070838.24
-rw-r--r-- 1 oracle oinstall 0 Jul 7 08:38 ./202107070838.25

-rw-r--r-- 1 oracle oinstall 0 Jul 7 08:38 ./202107070838.26

total 0
-rw-r--r-- 1 oracle oinstall 0 2021-07-07 08:38:22 202107070838.22
-rw-r--r-- 1 oracle oinstall 0 2021-07-07 08:38:23 202107070838.23
-rw-r--r-- 1 oracle oinstall 0 2021-07-07 08:38:24 202107070838.24
-rw-r--r-- 1 oracle oinstall 0 2021-07-07 08:38:25 202107070838.25
-rw-r--r-- 1 oracle oinstall 0 2021-07-07 08:38:26 202107070838.26
--// 注意日期显示--date='1 day ago Q seconds'.

$ seq -2 1 2 | xargs -IQ date "+%Y%m%d%H%M.%S" --date='0 day ago Q seconds' | xargs -IQ touch -t Q Q ; find . -name "2021" -mtime 0 -exec ls -ltr {} +; echo ====== ; ls -ltr ; rm -f 2021
-rw-r--r-- 1 oracle oinstall 0 Jul 8 08:40 ./202107080840.42

-rw-r--r-- 1 oracle oinstall 0 Jul 8 08:40 ./202107080840.43

total 0
-rw-r--r-- 1 oracle oinstall 0 2021-07-08 08:40:42 202107080840.42
-rw-r--r-- 1 oracle oinstall 0 2021-07-08 08:40:43 202107080840.43
-rw-r--r-- 1 oracle oinstall 0 2021-07-08 08:40:44 202107080840.44
-rw-r--r-- 1 oracle oinstall 0 2021-07-08 08:40:45 202107080840.45
-rw-r--r-- 1 oracle oinstall 0 2021-07-08 08:40:46 202107080840.46
--// 注意日期显示--date='0 day ago Q seconds'. 输入--date='Q seconds'.也是一样的.

$ seq -2 1 2 | xargs -IQ date "+%Y%m%d%H%M.%S" --date='Q seconds' | xargs -IQ touch -t Q Q ; find . -name "2021" -mtime -0 -exec ls -ltr {} +; echo ====== ; ls -ltr ; rm -f 2021
-rw-r--r-- 1 oracle oinstall 0 Jul 8 08:42 ./202107080842.23
-rw-r--r-- 1 oracle oinstall 0 Jul 8 2021 ./202107080842.24

-rw-r--r-- 1 oracle oinstall 0 Jul 8 2021 ./202107080842.25

total 0
-rw-r--r-- 1 oracle oinstall 0 2021-07-08 08:42:21 202107080842.21
-rw-r--r-- 1 oracle oinstall 0 2021-07-08 08:42:22 202107080842.22
-rw-r--r-- 1 oracle oinstall 0 2021-07-08 08:42:23 202107080842.23
-rw-r--r-- 1 oracle oinstall 0 2021-07-08 08:42:24 202107080842.24
-rw-r--r-- 1 oracle oinstall 0 2021-07-08 08:42:25 202107080842.25

相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航