如何保留原始文件压缩后的时间戳?

Posted

技术标签:

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

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

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

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

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

这样做的一种方法是

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

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

【问题讨论】:

【参考方案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】:

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

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

【讨论】:

以上是关于如何保留原始文件压缩后的时间戳?的主要内容,如果未能解决你的问题,请参考以下文章

安装包可以删除吗? 就是解压后的文件夹 安装之后可以删除吗?

压缩解压缩命令

如何使用存档文件名中存档文件夹的日期创建 RAR 存档?

如何压缩Mysql数据库

tarzipgzip等解压缩命令

xz压缩