linux和windows查找文件的时间属性

一 Windows
forfiles中的 /D 参数解释

   /D    date          选择文件,其上一次修改日期大于或等于 (+),
                       或者小于或等于 (-) 用 "yyyy/MM/dd" 格式指定的日期;

                       或选择文件,其上一次修改日期大于或等于 (+)
                       当前日期加 "dd" 天,或者小于或等于 (-) 当前

                       日期减 "dd" 天。有效的 "dd" 天数可以是
                       0 - 32768 范围内的任何数字。如果没有指定,

                       "+" 被当作默认符号。

需求:XX中心每天凌晨1点钟会删除小于或等于当天的4天前的文件(forfiles /P E:\XXmis\ /S /D -4 /C "cmd /c del /f /q @file")

实践测试如下:

1.2016-2-3 1:00 系统schetask自动执行forfiles /P E:\XXmis\ /S /D -4 /C "cmd /c del /f /q @file"的bat

2.2016-2-3 10:20 人工检查XXMIS目录大小是553G,最早的文件是2016-1-31 0:00以后的所有时间段的文件(包括 2016-1-31 1:00前的,可以断定/D -4是看日期,不会精确到小时),3.2016-2-3 10:20 手工执行forfiles /P E:\XXmis\ /S /D -4 /C "cmd /c del /f /q @file"
E:\XXmis\&E:\XXmis\download\  文件个数不变(没有删除2016-1-31 0:00到2016-1-31 10:20的文件可再次确认/D -4是看日期,不会精确到小时)

结论:
forfiles /D -4 是指小于或等于今天的4天前(包含今天,且只看日期,和具体小时无关)修改的文件
 
二 linux -mtime

find . –mtime n:  File waslast modified n*24 hours ago. 最后一次修改发生在距离当前时间n*24小时至(n+1)*24 小时

find . –mtime +n: 最后一次修改发生在n+1天以前,距离当前时间为(n+1)*24小时或者更早

find . –mtime –n: 最后一次修改发生在n天以内,距离当前时间为n*24小时以内
例如:
-mtime  2  是修改距离当前时间48小时到(2+1)*24即72小时之内

-mtime +2  是修改发生在2+1天以前,距离当前时间为(2+1)*24小时以前

-mtime -2  是修改在2天以内,即48小时以内

posted on 2018-03-23 10:54  石下江的太阳光  阅读(250)  评论(0编辑  收藏  举报

导航