2017-09-25 45 views
0

我在我们的服务器上有很多文件,我们使用过滤器进行压缩,只有x天以前的文件才会被压缩。如何保留原始文件发布zip压缩的时间戳

zip命令压缩原始文件,生成一个filename.zip并删除原始文件。 这有一个小问题,即压缩作业在x天后运行后时间戳发生更改。

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

我想添加一个条件,在压缩的同时,我希望压缩归档保留文件的原始时间戳,即使它在稍后的日期运行。

这样做将是 的一种方式 - 获取与date命令 每个原始文件的时间戳 - 压缩原始,删除原来 - 使用和使用插入前面保存的时间戳新的zip文件“触摸“

但是,如果任何人都可以提出更简单的解决方案,那就太好了。

谢谢。

回答

0

一些旧文件我有:

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

Zip和redate:

$ 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 
相关问题