Добавить сжатие в существующий архив

На самом деле это единственный раздел про unix на этом форуме

Модераторы: /dev/random, Модераторы разделов

Ответить
Novascriptum
Сообщения: 40

Добавить сжатие в существующий архив

Сообщение Novascriptum »

Всем доброго времени!
Столкнулся с любопытной ситуацией. Пусть у нас есть уже созданный tar-архив. Я дописываю в него файл, а потом хочу сжать (поскольку дописать файл в уже сжатый архив, насколько мне известно, нельзя).
Но если написать что-то вроде

root

tar czf file.tar.gz file.tar


То у меня будет file.tar.gz, внутри которого file.tar, внутри которого файлы. А мне бы хотелось file.tar.gz, внутри которого файлы.
Это можно как-то сделать? Т.е. добавить сжатие к уже созданному архиву, а не создавать новый архив со сжатием, внутри которого архив без сжатия?
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5289
ОС: Gentoo

Re: Добавить сжатие в существующий архив

Сообщение /dev/random »

man gzip
Спасибо сказали:
Kopilov
Сообщения: 949
ОС: [K]Ubuntu, Debian

Re: Добавить сжатие в существующий архив

Сообщение Kopilov »

file.tar -- архив с желаемым содержимым, только несжатый, верно? Вы и сжимайте, сответствующим инструментом:

Код: Выделить всё

gzip file.tar

А основная задача tar -- не сжимать, а упаковывать, он и создаёт новый архив поверх старого.
Спасибо сказали:
Novascriptum
Сообщения: 40

Re: Добавить сжатие в существующий архив

Сообщение Novascriptum »

Всем спасибо, очень помогли!
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current
Контактная информация:

Re: Добавить сжатие в существующий архив

Сообщение drBatty »

Novascriptum писал(а):
26.12.2013 17:29
Это можно как-то сделать? Т.е. добавить сжатие к уже созданному архиву, а не создавать новый архив со сжатием, внутри которого архив без сжатия?

ну tar cz как раз и сначала сливает файлы в один поток, а потом отдаёт этот поток gzip'у. Т.е. tar czf t.tgz t1 t2 эквивалентно

Код: Выделить всё

tar cf - t1 t2 | gzip -c > t.tgz

естественно это можно сделать по частям.
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Novascriptum
Сообщения: 40

Re: Добавить сжатие в существующий архив

Сообщение Novascriptum »

А если нужно еще и шифрование сжатого архива, как быть?
Выяснил, что в CentOS 6.4 (у меня он) по умолчанию включен zip. Ключ -P позволяет задать пароль: zip -P 'pass' myfile.zip myfaile.tar.
Но в результате опять получаем то, что я хотел преодолеть: tar-архив внутри сжатого архива. :wacko:
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20793
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Добавить сжатие в существующий архив

Сообщение Bizdelnick »

Novascriptum писал(а):
27.12.2013 20:50
А если нужно еще и шифрование сжатого архива, как быть?

gpg в помощь. Он и сжимать умеет. Либо делаете tar, который потом шифруете+сжимаете gpg, либо шифруете+сжимаете файлы gpg, а потом делаете tar.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current
Контактная информация:

Re: Добавить сжатие в существующий архив

Сообщение drBatty »

Novascriptum писал(а):
27.12.2013 20:50
А если нужно еще и шифрование сжатого архива, как быть?

GnuPG. Кстати сжатие тут не нужно, оно есть в gpg.
Novascriptum писал(а):
27.12.2013 20:50
Выяснил, что в CentOS 6.4 (у меня он) по умолчанию включен zip. Ключ -P позволяет задать пароль:

симметричный метод не годен для шифрования в 21ом веке. Вы что, в самом деле будете бекапы вручную делать? В 4 часа утра каждый день вставать и делать? Не обманывайте себя, не будете. Забьёте. А если не будете, то где возьмёте пароль?

Ну и наконец man zip

THIS IS INSECURE! (sic! капс и выделение как в оригинале)
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Ответить