我的服务器上有很多文件,我们使用过滤器压缩这些文件,只有超过 x 天的文件才会被压缩。
zip 命令压缩原始文件,生成文件名.zip 并删除原始文件。 这有一个小问题,即时间戳会发生变化,因为压缩作业在 x 天后运行。
因此,当我们运行文件以删除旧文件(现在是 zip 文件)时,并非所有文件都被删除,因为时间戳已从原始文件更改为压缩文件。
我想添加一个条件,在压缩时,我希望文件的原始时间戳保留在 zip 存档中,即使它在以后运行。
一种方法是
- 使用日期命令获取每个原始文件的时间戳
- 压缩原件,去除原件
- 使用“触摸”将较早存储的时间戳插入新的 zip 文件
我正在寻找更简单的解决方案。
最佳答案
我有一些旧文件:
$ 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
关于linux - 如何保留 zip 压缩后原始文件的时间戳?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46398296/