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

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

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

有什么想法吗?

【问题讨论】:

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

标签: linux bash unix zip archive


【解决方案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 -execdirzip -rm 的手册。

    【讨论】:

      猜你喜欢
      • 2022-01-25
      • 2012-12-04
      • 1970-01-01
      • 2016-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多