Хранить в 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
Есть идеи сделать это лучше?
2 ответа
Временная метка вашего архивного файла, конечно, не относится к каталогу, поскольку технически архив является чем-то совершенно новым. Но файлы и каталоги внутри архива останутся со своими собственными временными метками.
Конечно, вы можете изменить отметку времени впоследствии, и вам даже не нужно извлекать отметку файла из каталога, просто сослаться на нее, используя -r
:
touch -r cmdb cmdb.tar.bz2
(AFAIK, -r
возможность touch
соответствует стандартам POSIX.)
Что вы подразумеваете под "лучше"? Если вы хотите написать сценарий, вы можете объединить его так:
touch -d @`stat -c "%Y" cmdb` cmdb.tar.bz2
или что-то вроде этого, но если ваш подход работает, это нормально.
(man touch
, man stat
).