我的服务器上有很多文件,我们使用过滤器进行压缩,只有x天以前的文件才会被压缩。
zip命令压缩原始文件,生成filename.zip并删除原文。 这有一个小问题,即压缩作业在x天之后运行,时间戳会发生变化。
因此,当我们运行文件以删除旧文件(现在是zip文件)时,由于时间戳已从原始文件更改为压缩文件,因此不会删除所有文件。
我想添加一个条件,在压缩时,我希望zip存档保留文件的原始时间戳,即使它在以后运行。
这样做的一种方法是 - 使用日期命令获取每个原始文件的时间戳 - 压缩原件,取出原件 - 使用"触摸"
,使用并将先前存储的时间戳插入新的zip文件但是,如果有人能提出更简单的解决方案,那就太棒了。
感谢。
答案 0 :(得分: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