我正在寻找一个解决scheme来创build一个tar.bz2文件,并保持原始文件夹的时间戳。 我的解决scheme是“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
任何想法做得更好?
归档文件的时间戳当然不是目录中的一个,因为归档在技术上是全新的。 但档案内的文件和目录将保留自己的时间戳。
当然,你可以改变时间戳,你甚至不需要从目录中提取文件标签,只需使用-r引用即可:
touch -r cmdb cmdb.tar.bz2
(AFAIK, touch的-r选项符合 POSIX标准 。)
你是什么意思“更好?如果你想要脚本,你可以像这样结合:
touch -d @`stat -c "%Y" cmdb` cmdb.tar.bz2
或者类似的东西,但是如果你的方法有效的话,没关系。
( man touch , man stat )。