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

Posted

技术标签:

【中文标题】删除 zip 存档中“早于”的文件【英文标题】:Delete a file "older than" in a zip archive 【发布时间】:2013-05-03 14:29:00 【问题描述】:

我每月归档一次 10 MB 的文件,然后通过电子邮件发送。 下个月,我需要删除存档中的前几个月文件并添加新文件。这样我就可以将空间保持在较低的水平。除了取消归档和搜索然后归档之外,我还没有找到方法!

文件名以上个月的日期结尾。文件名20130430.csv,日期为变量日期。

有什么想法吗?

【问题讨论】:

为什么不简单地保存您的文件,并每月创建一个新的存档,您将通过电子邮件发送? (然后你最终可以删除存档文件) 我最终将不得不这样做。如果没有其他办法。 【参考方案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

【讨论】:

【参考方案2】:

为了节省磁盘空间,您可以将所有 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 -execdir 和zip -rm 的手册。

【讨论】:

以上是关于删除 zip 存档中“早于”的文件的主要内容,如果未能解决你的问题,请参考以下文章

Git 存档在最终 zip 输出中删除 .ebextensions

如何更新 zip 存档中的一个文件

如何在 Python 中将文件写入 Zip 文件的根目录

如何使用 Sharpcompress .net 从 ZIP 存档中删除单个条目

易宝典文章——玩转O365中的EXO服务 之三十三 管理存档策略

使用 powershell 和 7zip 创建存档的脚本