如何在unix中压缩最新创建的文件

时间:2013-03-08 13:19:05

标签: unix zip

我想压缩特定日期创建的文件数量。我用了这个命令

zip -rt 06222012 TEST root/*.csv

此命令压缩了根目录中的所有文件,其日期为> = 22/6/2011创建.csv扩展名

但这不符合我的要求。我的要求是...... 假设有两个脚本a.sh和b.sh a.sh(手动运行)在22/6/2012 1:00 AM执行,并在2012年6月22日凌晨4:00完成并创建4 .csv文件

此b.sh文件在2012年6月22日上午6:00通过cron作业执行,并在12/22/2012 10:00 AM完成并创建5 .csv文件

上面的zip命令会压缩所有这9个文件,因为它们是在22/6/2012的同一天创建的,但我只需要5个.csv文件,这些文件只能由b.sh创建,这意味着获得的文件在22/6/2012 10:00 AM创建

在上面的zip命令中,我也可以给出小时和分钟吗?

1 个答案:

答案 0 :(得分:1)

鉴于上述评论中已经提到的事实,使用标准文件系统,您唯一的机会是近似“由上次修改的文件”创建的“文件”,您可能希望使用find来解决问题。 / p>

在stackoverflow上已有一篇关于它的文章很好(参见:Shell Script — Get all files modified after <date>

关于你的情况,-newerXY选项可能是最适合问题的选项,如:

  zip -r TEST `find root -name"*.csv" -newermt 10:00`