Хранить в 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).

Другие вопросы по тегам