微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

发现 – mtime vs mmin – 奇怪的结果

所以我正在使用bash脚本清除临时文件,并遇到莫名其妙的行为。

# Find using mmin flag find /usr/local/store/file/temp/3_day/ -mmin +$((60*24*3)) -type f > /tmp/old_files_by_mmin.txt # Find using mtime flag find /usr/local/store/file/temp/3_day/ -mtime +3 -type f > /tmp/old_files_by_mtime.txt diff -u /tmp/old_files_by_mmin.txt /tmp/old_files_by_mtime.txt

前几行:

--- /tmp/old_files_by_mmin.txt 2016-08-03 16:56:42.535458820 +0000 +++ /tmp/old_files_by_mtime.txt 2016-08-03 16:56:58.310681524 +0000 @@ -117,59 +117,6 @@ /usr/local/store/file/temp/3_day/image/resize/2016/07/29/11/15/36/1296924350 /usr/local/store/file/temp/3_day/image/resize/2016/07/29/11/47/52/1950191632 /usr/local/store/file/temp/3_day/image/resize/2016/07/29/11/30/01/711250694 -/usr/local/store/file/temp/3_day/image/resize/2016/07/31/10/04/15/44313759 -/usr/local/store/file/temp/3_day/image/resize/2016/07/31/10/04/15/1589177813 -/usr/local/store/file/temp/3_day/image/resize/2016/07/31/10/04/15/1189074525 -/usr/local/store/file/temp/3_day/image/resize/2016/07/31/10/56/44/91382315 -/usr/local/store/file/temp/3_day/image/resize/2016/07/31/09/43/45/1622776054 -/usr/local/store/file/temp/3_day/image/resize/2016/07/31/01/44/57/1465920226 -/usr/local/store/file/temp/3_day/image/resize/2016/07/31/01/23/17/1467026748 -/usr/local/store/file/temp/3_day/image/resize/2016/07/31/01/15/58/1990201487 -/usr/local/store/file/temp/3_day/image/resize/2016/07/31/01/13/19/1990298215 -/usr/local/store/file/temp/3_day/image/resize/2016/07/31/01/35/59/518813467 -/usr/local/store/file/temp/3_day/image/resize/2016/07/31/12/10/53/1962045410 -/usr/local/store/file/temp/3_day/image/resize/2016/07/31/12/31/27/290517373 -/usr/local/store/file/temp/3_day/image/resize/2016/07/31/12/05/08/547481306

为什么-mmin标志选取mtime标志不是的文件? 如果两者都应该find比现在更早的文件+ 3天?

我的Apache如何才能访问根文件

无法在我的centOS中安装铬

同一台服务器上多个网卡上的多个IPconfiguration

从cron作业开始一个shell脚本的服务(upstart)

bashredirect到/ dev / stdout:不是一个目录

如何通过SFTP将数据传输到远程文件而不将数据存储在Linux Bash的本地文件中?

百胜尝试在CentOS 6上安装.el7版本

Python – 什么时候可以使用os.system()来发出常见的Linux命令

我如何使python程序检查linux服务

错误的字符试图用西class牙语符号在美国的远程计算机上执行代码

鉴于实现之间的区别,值得看看POSIX标准的find要求:

-mtime n

如果从初始化时间减去文件修改时间除以86400(除去任何剩余部分 ),则小学应评估为真。

同样,按照手册(BSD查找):

-mtime n[smhdw]

如果没有指定单位,则如果文件上次修改时间和时间查找之间的差异已经开始( 四舍五入到下一个完整的24小时期间),则该主要评估为真,即n 24小时期间。

…因此:在BSD find ,认行为是舍入到整个24小时的时间段。

对于GNU查找,有一些可配置性; 请参阅-daystart :

-daystart

从今天开始,而不是从24小时前开始测量时间(对于-amin,-atime,-cmin,-ctime,-mmin和-mtime)。 该选项仅影响稍后在命令行中显示的测试。

但是,缺省行为与-atime的定义中给出的一样:

-atime n

文件上次访问n * 24小时前。 当find数字显示上次访问文件的时间是24小时以前,任何小数部分都会被忽略,所以要匹配-atime +1 ,必须至少在两天前访问文件

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐