【问题标题】:How to preserve timestamp of original file post zip compression?如何保留原始文件压缩后的时间戳?
【发布时间】:2017-09-25 05:42:43
【问题描述】:

我的服务器上有很多文件,我们使用过滤器进行压缩,只有 x 天之前的文件才会被压缩。

zip 命令压缩原始文件,生成文件名.zip 并删除原始文件。 这有一个小问题,因为压缩作业在 x 天后运行,所以时间戳会发生变化。

因此,当我们运行文件以删除旧文件(现在是 zip 文件)时,并非所有文件都被删除,因为时间戳已从原始文件更改为压缩文件。

我想添加一个条件,在压缩时,我希望 zip 存档保留文件的原始时间戳,即使它在以后运行。

这样做的一种方法是

  • 使用日期命令获取每个原始文件的时间戳
  • 压缩原件,删除原件
  • 使用“触摸”将先前存储的时间戳插入新的 zip 文件中

我正在寻找更简单的解决方案。

【问题讨论】:

    标签: linux bash shell zip compression


    【解决方案1】:

    我有一些旧文件:

    $ ls -l foo
    -rw-r--r-- 1 james james 120 Sep  5 07:28 foo
    

    压缩并重新更新:

    $ zip foo.zip foo && touch -d "$(date -R -r foo)" foo.zip
    

    检查一下:

    $ ls -l foo.zip
    -rw-r--r-- 1 james james 120 Sep  5 07:28 foo.zip
    

    删除原来的:

    $ rm -i foo
    

    【讨论】:

      【解决方案2】:

      是的,您可以解压缩文件并保留最初创建时间的旧时间戳。执行此操作的步骤如下:

      1. 点击文件名.zip,属性
      2. 在“常规”选项卡中,安全性显示“此文件来自另一台计算机,可能会被阻止以帮助保护这台计算机”。单击取消阻止复选框,然后单击确定
      3. 提取文件和volla,提取的文件具有创建/修改文件时的数据时间戳

      【讨论】:

        猜你喜欢
        • 2014-06-20
        • 2011-01-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多