删除zip存档中的“早于”文件

时间:2013-05-03 14:29:00

标签: linux bash unix zip archive

我每月存档一次10 MB的文件,然后通过电子邮件发送给我。 下个月,我需要删除存档中的前几个月文件并添加新文件。这样我就把空间降到了最低点。除了取消归档,搜索和归档之外,我还没有办法做到这一点!

文件名以上个月的日期结束。 filename20130430.csv,日期是变量日期。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

如果您使用的是info ZIP,则可以选择性地使用“-d”删除存档中的文件,例如:

zip -d archive.zip filename201304\*.csv

您还可以根据修改日期删除文件(请注意日期格式为mmddyyyy或yyyy-mm-dd),例如。在2013年5月1日之前删除所有csv文件:

zip --before-date 05012013 -d archive.zip \*.csv

并在没有任何选项的情况下将文件添加到存档:

zip archive.zip filename20130531.csv

答案 1 :(得分:0)

要保留磁盘空间,您可以将所有CSV文件转换为ZIP:

# ZIP all CSV files older than 14 days within the same directory
find /your/directory/*.csv -mtime +13 -execdir zip -rm ./'{}'\.zip '{}' \;

请参阅find -execdirzip -rm手册。