保留 tar.bz2 原始目录 datetime

保留 tar.bz2 原始目录 datetime

我正在寻找一种解决方案来创建 tar.bz2 文件并保留原始文件夹时间戳。我的解决方案是“touch -t {original timestamp}”file.tar.bz2

manuel@mfpanzuela:~$ ls -la
drwxrwxr-x  2 manuel manuel     4096 nov 13  2013 cmdb

manuel@mfpanzuela:~$ tar cjf cmdb.tar.bz2 cmdb

-rw-rw-r--  1 manuel manuel      860 may 20 11:28 cmdb.tar.bz2
manuel@mfpanzuela:~$ touch -t 201311130000 cmdb.tar.bz2

manuel@mfpanzuela:~$ ls -la
drwxrwxr-x  2 manuel manuel     4096 nov 13  2013 cmdb
-rw-rw-r--  1 manuel manuel      860 nov 13  2013 cmdb.tar.bz2

有什么想法可以做得更好吗?

答案1

存档文件的时间戳当然不是目录的时间戳,因为存档在技术上是全新的东西。但存档内的文件和目录将保留自己的时间戳。

当然,您可以随后更改时间戳,甚至不需要从目录中提取文件戳,只需使用以下命令引用它-r

touch -r cmdb cmdb.tar.bz2

(据我所知-rtouch 符合 POSIX 标准

答案2

你说的“更好”是什么意思?如果你想编写脚本,你可以像这样组合它:

touch -d @`stat -c "%Y" cmdb` cmdb.tar.bz2 

或者类似的东西,但如果你的方法有效,那就很好了。

man touchman stat)。

相关内容