使用find指令查找特定/指定时间内的文件


本文最后更新于 1909 天前,文中的信息可能已经有所发展或发生改变。

需求查找某个时间点之后修改的文件,于是使用了下面的shell指令:

touch -t 201404151200.00 /tmp/cmp.time      #生成对比文件,时间为2014年4月15日12点整
find . -type f -newer /tmp/cmp.time         #查找比cmp.time修改时间更新的文件

后来研究了下,find指令还带有-mtime指令,分三种参数情况:

1.从现在算起向前n*24小时之内修改过的文件:

find . -type f -mtime -n

图例(等号段为-mtime选项指定的时间区间,下同):

             {  n*24 h  }
----------n*24==========now----------

2.从现在算起向前n*24小时之前24小时之内修改过的文件:

find . -type f -mtime n

图例:

                               {   n*24 h }
----------(n+1)*24==========n*24----------now----------

3.从现在算起(n+1)*24小时之前修改过的文件:

find . -type f -mtime +n

图例:

                 {(n+1)*24 h}
==========(n+1)*24----------now----------

结合以上两种指令来查找某时间区间内的文件:

#先查找比cmp.time更新的文件,在此结果中查找24小时之前的文件
find . -type f -newer cmp.time -exec find {} -mtime +0 \;

图例:

                                  {(n+1)*24 h}
----------(newer)==========(n+1)*24----------now----------

Published

Author

levin

Category

Unix/Linux

Tags

shell
Disqus loading now...