LINUX.ORG.RU
ФорумTalks

xz, lzma, 7z...


0

1

Тупой вопрос: чем (xz, lzma, 7z, еще чем то) кошерней (лучше, переносимей) ужимать tar файлы ?

А так же в чем же отличие 7z, 7za, 7zr ? Если для максимального сжатия у xz и lzma все просто с ключами, то у 7z есть еще некие «fast bytes». Какие ключи у 7z дадут максимально возможное сжатие ?


в ближайшем будущем будет xz, в tar уже есть ключик -J для xz/unxz, ждём когда xz-utils 5.0.0 зарелизят и распространят по дистрам :)

Adjkru ★★★★★
()
Ответ на: комментарий от INFOMAN

>gz, bz2
это понятно. я про эти тулзовины. не ясно насколько совместимы их форматы для распаковщиков. в новой Fedore вон тоже пакеты чем то таким сжимать будут.

xtron
() автор топика
Ответ на: комментарий от Adjkru

>в tar уже есть ключик -J

tar cvfJ file.tar.xz file
работает, вот только пока не ясно что именно он вызывает и явно с ключами по умолчанию. для gzip и bzip2 хоть переменные окружения можно выставить чтобы уровень их сжатия указать...

так же для меня загадка что в tar за ключи --lzma и --lzop
как я не пытался их указывать - ругается на них, хотя в man tar они есть и опцию J понимает...

кто объяснит ?

xtron
() автор топика

xz lzma 7z - все равно, они все жмут одинаково, используется LZMA SDK,
лучше использовать то, что новее, более новые версии LZMA SDK работают быстрее, 7z может похвастать тем что может утилизовать второе ядро, lzma, xz пока работают в 1 поток, хотя tar.7z это не совсем «кошерный» вариант.

7z - использует .so библиотеку
7za - слинкован статически
7zr - вот тут я не совсем понимаю что там такого )
7zG - с графическим диалогом прогресса (wxWidgets)


7z -mx=9

Sylvia ★★★★★
()
Ответ на: комментарий от xtron

--lzma использовать lzma )
--lzop использовать lzop (очень быстрое но слабое сжатие)

вообще можно использовать

tar -a

тогда утилита будет подбираться по окончанию расширения файла, очень удобно, tar естественно нужно новый (1.22)

с -J путаница, в 1.22 это xz , в 1.21 - lzma

Sylvia ★★★★★
()

Почитал тред... все как обычно - зоопарк всего и ничего толкового. Вот нафига было плодить столько сущностей?

Andru ★★★★
()
Ответ на: комментарий от Andru

сущностей на lzma sdk?

lzma - просто сырой формат выдачи
xz - добавляет служебную информацию, что существенно расширяет возможности, например можно разные фильтры ставить


7z - ( 7-zip , p7zip ) - собственная разработка Игоря Павлова, обычный архиватор, не unix-way

lzma и xz компрессоры для потока, unixway )

lzma отойдет в прошлое, его заменит xz скорее всего, как более совершенный, еще должен бы в прошлое уйти и bzip2 , как медленный (самый медленный в плане декомпрессии) и не являющийся чемпионом по сжатию, lzma -1 ( xz -1 ) его обходит, как по скорости сжатия, так и по степени сжатия

Sylvia ★★★★★
()

lzma устарел, потому что в xz есть lzma2 и поддержка нескольких алгоритмов-фильтров, но есть на чуть большем числе компов (у меня нету, но если будет надо, соберу, а lzma есть, ибо собирал раньше). 7z -- наиболее полная версия, умеет не только 7zip, но и другие форматы, 7z{r,a} более легкие версии, одна из них вроде собирается статически.. 7zip лучше всего для задач, где не требуется сохранять права доступа и нужно втиснуть в архив более одного файла (при общении с виндузятниками, например)
tar.7z имхо изврат, ибо придется делать два движения вместо одного вызова tar xf. Если файл небольшой, то таки лучше gz, ибо везде есть.
xz хорош, если надо поиздеваться над виндузятником (интересно, как он будет собирать xz утилз)

Xenius ★★★★★
()
Ответ на: комментарий от Andru

>Вот нафига было плодить столько сущностей?
эволюция, конкуренция, фитнес-функция

dimon555 ★★★★★
()
Ответ на: комментарий от Xenius

Смешались вместе кони люди...
LZMA - алгоритм сжатия
.lzma - просто пожатый файл
.xz - сжатый файл с некоторой информацией, а также одноимённая утилита, вытесняет убогий bzip2
.7z - полноценный контейнер, с шифрованием имён, доп. фильтрами и пр.
7-zip - архиватор для windows, 7za - консольная standalone версия, остальное не важно.

>xz хорош, если надо поиздеваться над виндузятником (интересно, как он будет собирать xz утилз)


Дурилко, где ты видел, чтобы в windows юзеры что-то собирали? Тем более когда 7-zip .xz поддерживает :)

frame ★★★
()

>Какие ключи у 7z дадут максимально возможное сжатие ?

-mx=9 -mfb=256 -md=64m, -mfb=273 иногда дают лучшее сжатие, но не всегда

frame ★★★
()

Начиная с какой версии 7-zip поддерживает xz? Ну и, у вантузоидов чаще только винрар стоит, а он криво держит даже обычный tar.

Xenius ★★★★★
()
Ответ на: комментарий от Xenius

Нууу... можно и rk зажать если у аффтара подобных затей голова сильно чешется и ему очень хочется, чтобы кто-то решил эту проблему тупым тяжелым предметом

frame ★★★
()
Ответ на: комментарий от Xenius

> Ну и, у вантузоидов чаще только винрар стоит, а он криво держит даже обычный tar.

У вантузоидов чаще стоит винда, простите за тавтологию, а она держит zip. Которого вполне достаточно обычно.

const86 ★★★★★
()
Ответ на: комментарий от Sylvia

> lzma -1 ( xz -1 ) его обходит, как по скорости сжатия, так и по степени сжатия

lzma -1 жмет быстрее чем bzip? Как-то не заострял раньше на этом внимание. Класс!!

Manhunt ★★★★★
()
Ответ на: комментарий от Sylvia

> lzma отойдет в прошлое, его заменит xz скорее всего, как более совершенный, еще должен бы в прошлое уйти и bzip2

Искал что-то типа pbzip2, но для lzma, чтоб компрессия и декомпрессия линейно масштабировалась на 8 ядер. Нашел лишь костыль на питоне, не умеющий работать в потоке. Не исключаю, что гугл не осилил. Есть чего-нть подобное? 7z лишь на 2 ядра ядра растягивается...((

shahid ★★★★★
()
Ответ на: комментарий от shahid

pbzip2
bzip2smp

первый жмет только файлы
второй только поток.. их бы в 1 утилиту...


для декомпрессии наверное некритично, а вот компрессия в LZMA SDK кажется пока только на 2 ядра, причем lzma(xz) utils это еще и не умеют пока, я не в курсе да и не смотрела информацию, у меня 4-ядерного нет ничего пока )

Sylvia ★★★★★
()
Ответ на: комментарий от Sylvia

> lzma -1 ( xz -1 ) его обходит, как по скорости сжатия, так и по степени сжатия

Сейчас проверил на linux-ядре, xz обгоняет bzip2 по степени сжатия только с -3.

Adjkru ★★★★★
()
Ответ на: комментарий от Sylvia

Ок, ясно, спасибо.

Поправлю вас:
pbzip2 с 1.0.5 жмёт многопоточно как файлы, так и stdin. Разжимает stdin только в 1 нить, разжимает bz2-файл постепенно распараллеливаясь.

shahid ★★★★★
()
Ответ на: комментарий от const86

> У вантузоидов чаще стоит винда, простите за тавтологию, а она держит zip. Которого вполне достаточно обычно.

Интересно, почему тогда так популярны всякие винрары и .rar если zip такой удобный и универсальный...

shahid ★★★★★
()
Ответ на: комментарий от shahid

> Интересно, почему тогда так популярны всякие винрары и .rar если zip такой удобный и универсальный...

Есть мнение, что популярны они только в России, которую умом не понять ;) А так, если сравнить zip с rar, то в пользу второго только лучшее сжатие, а в пользу первого - всё остальное.

const86 ★★★★★
()
Ответ на: комментарий от shahid

>компрессия и декомпрессия линейно масштабировалась на 8 ядер.

скорость компресии числом ядер никак не увеличить, вот степень - да, декомпрессия по словарю это вообще однопоточный алгоритм by design

frame ★★★
()

xz (XZ Utils) 4.999.9beta прикрутили забор параметров из переменной окружения XZ_OPT. выходит теперь можно по человечески xz с tar использовать:

$ export XZ_OPT='-9';
$ tar cvfJ linux-2.6.31.tar.xz linux-2.6.31

$ 7zr a -mx=9 -mfb=256 -md=64m linux-2.6.31.tar.7z linux-2.6.31

$ ls -l
51669249 linux-2.6.31.tar.7z
61494822 linux-2.6.31.tar.bz2
50950504 linux-2.6.31.tar.xz

вообщем всем спасибо, я для себя выбираю tar.xz

xtron
() автор топика
Ответ на: комментарий от Sylvia

>lzma -1 ( xz -1 ) его обходит, как по скорости сжатия, так и по степени сжатия

Только что проверил, xz почти в два раза дольше сжимал чем bz2.

Elverion
()
Ответ на: комментарий от Elverion

/var/tmp :$time xz -1 < wine-1.1.33.tar > test.xz
real 0m6.669s
user 0m6.625s
sys 0m0.043s

/var/tmp :$time bzip2 -9 < wine-1.1.33.tar > test.bz2
real 0m21.375s
user 0m21.278s
sys 0m0.093s

-rw-r--r-- 1 sylvia sylvia 15979546 Nov 20 20:44 test.bz2
-rw-r--r-- 1 sylvia sylvia 19116768 Nov 20 20:44 test.xz

по степени сжатия уступил xz, зато в скорости - троекратно быстрее, вообще все зависит от типа данных

Sylvia ★★★★★
()
Ответ на: комментарий от Sylvia

Если у xz поставить -9 то будет дольше bz2, но и сжатие лучше.

Elverion
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.