删除 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
如何使用 Sharpcompress .net 从 ZIP 存档中删除单个条目