Назад | Перейти на главную страницу

сохранить в tar.bz2 исходный каталог datetime

Я ищу решение для создания файла tar.bz2 и сохранения метки времени исходной папки. Мое решение - "touch -t {исходное время}" 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, -r возможность touch соответствует Стандарты POSIX.)

Что вы имеете в виду под словом «лучше?» Если вы хотите написать сценарий, вы можете комбинировать это так:

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

или что-то в этом роде, но если ваш подход работает, ничего страшного.

(man touch, man stat).