如何保留原始文件压缩后的时间戳?
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,提取的文件具有创建/修改文件时的数据时间戳
【讨论】:
以上是关于如何保留原始文件压缩后的时间戳?的主要内容,如果未能解决你的问题,请参考以下文章