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小时以内