Непрерывный ZIP архив – уменьшаем размер архива
Select messages from
# through # FAQ
[/[Print]\]
Goto page 1, 2  Next  :| |:
Total Commander -> Общие вопросы

#1: Непрерывный ZIP архив – уменьшаем размер архива Author: МоторокерLocation: г. Пермь (читается Перьмь) PostPosted: Wed Oct 11, 2006 08:41
    —
Иногда на компьютере не бывает нормального архиватора, зато есть Total Commander.
Если нужно скопировать множество небольших файлов, например текстовых, HTML, используйте непрерывные ZIP архивы.
Ни один архиватор не сделает такой архив за один проход, Рошаль тоже отказался.

1. Если есть папки, нажмите Ctrl+B, чтобы файлы были видны одним списком.
2. Выберите нужные файлы, отсортируйте по типу. Это нужно для того, чтобы файлы с одинаковым содержимым шли в архиве друг за другом.
3. Создайте архив без сжатия – нажмите Alt+F5, в на стройках выставите степень сжатия 0. Упакуйте архив.
4. Теперь сожмите получившийся файл с максимальным сжатием.

Для эксперимена были сжаты файлы с Рабочего стола – это сохранённые HTML странички с картинками (графика в папках). Полученные файлы имеют такие размеры:
Исходные файлы: 12.8 Mb (13 460 711 байт)
ZIP без сортировки: 9.0 Mb (9 500 537 байт)
ZIP с сортировкой: 9.0 Mb (9 507 077 байт)
Непрерывный ZIP без сортировки: 8.7 Mb (9 189 712 байт)
Непрерывный ZIP с сортировкой: 8.1 Mb (8 577 696 байт)

Конечно, ёмкости носителей растут каждый день, тем не менее, совет иногда может пригодиться.

 !  Avada:
Эта тема представляется куда более уместной в "Общих вопросах", чем в "Секретах и советах". Тем более, что советов у нас и в других местах даётся много...

#2: Re: Непрерывный ZIP архив – уменьшаем размер архива Author: VolniyLocation: Местный PostPosted: Wed Oct 11, 2006 13:01
    —
Моторокер wrote:
Ни один архиватор не сделает такой архив за один проход, Рошаль тоже отказался.


От чего он отказался? Может я пропустил что-то... Embarassed

#3: Re: Непрерывный ZIP архив – уменьшаем размер архива Author: МоторокерLocation: г. Пермь (читается Перьмь) PostPosted: Wed Oct 11, 2006 14:06
    —
Volniy wrote:
Моторокер wrote:
Ни один архиватор не сделает такой архив за один проход, Рошаль тоже отказался.


От чего он отказался? Может я пропустил что-то... Embarassed

Отказался встроить подобную фичу в WinRAR, типа запутает юзеров. А так бы удобно было, тем более, что галочка «Непрерывный архив» уже есть.

#4: Re: Непрерывный ZIP архив – уменьшаем размер архива Author: VolniyLocation: Местный PostPosted: Wed Oct 11, 2006 14:26
    —
Моторокер wrote:
А так бы удобно было, тем более, что галочка «Непрерывный архив» уже есть.

Так, что, этого разве недостаточно?

#5:  Author: МоторокерLocation: г. Пермь (читается Перьмь) PostPosted: Wed Oct 11, 2006 14:51
    —
Галочка – конечно хорошо, только
Quote:
Ни один архиватор не сделает такой архив за один проход

#6:  Author: VolniyLocation: Местный PostPosted: Wed Oct 11, 2006 15:39
    —
Моторокер wrote:
Галочка – конечно хорошо, только
Quote:
Ни один архиватор не сделает такой архив за один проход

Вопрос ведь не в этом. Нужна ли такая экзотика в RAR, если там есть встроенная поддержка solid-архивов. Будет ли какой-то реальный эффект от этого наворота?

#7:  Author: МоторокерLocation: г. Пермь (читается Перьмь) PostPosted: Wed Oct 11, 2006 16:02
    —
Quote:
Нужна ли такая экзотика в RAR, если там есть встроенная поддержка solid-архивов.

Не у всех есть RAR. Про ZIP знают больше народа. + встроенна поддержка в Win.

Eugene Roshal wrote:
Quote:
Если склеить много небольших файлов в ZIP архив без сжатия, а затем упаковать максимальным методом сжатия тоже в ZIP, то размер архива существенно уменьшится. В итоге размер архива получается больше, чем RAR, но зато и меньше, чем обычный ZIP.


Это так, но работать с таким архивом будет менее удобно, чем с обычным ZIP или даже solid RAR.

Quote:
TAR+GZ, но в формате ZIP. При открытии такого файла в WinRAR можно было бы сразу переходить во внутренний архив, вот только для прочтения имен файлов надо будет распаковать его полностью.

Похоже, немного не догнал.

Такой архив может попасть и к пользователям, у которых нет WinRAR.


Quote:
Будет ли какой-то реальный эффект от этого наворота?

Конечно, если много одинаковых файлов. Цифры выше.

#8:  Author: NikLocation: Киров PostPosted: Wed Oct 11, 2006 19:04
    —
Quote:
Не у всех есть RAR. Про ZIP знают больше народа. + встроенна поддержка в Win.

Само собой, Рошаль отказался. Сами посудите - для RAR есть нормальный алгоритм создания непрерывных архивов. Такие архивы нормально распаковывает любой архиватор (поддерживающий формат RAR, разумеется). А каково будет обычному юзеру, у которого даже RAR'а нет, распаковывать такой вот "непрерывный" ZIP-архив? Имхо, проще завести WinRAR Smile

#9:  Author: МоторокерLocation: г. Пермь (читается Перьмь) PostPosted: Thu Oct 12, 2006 07:04
    —
Quote:
А каково будет обычному юзеру, у которого даже RAR'а нет, распаковывать такой вот "непрерывный" ZIP-архив?

Не понимаю, в чем проблема? Зашёл в архив, там ещё архив, зашёл в него. Иногда и похлеще варианты встречаются, RAR в ZIP упакуют или наоборот.

#10:  Author: CaptainFlintLocation: Москва PostPosted: Thu Oct 12, 2006 10:26
    —
Моторокер wrote:
Зашёл в архив, там ещё архив, зашёл в него.

... дождавшись, пока этот внутренний полностью распакуется во временный каталог...

А вообще, не надо никаких премудростей. Что такое по-вашему TAR-архив? Это ведь и есть набор из всех файлов просто слитых последовательно в один файл. Обычно его жмут потом GZ, но кто мешает жать ZIP'ом или RAR'ом?

К сожалению, работа с вложенными архивами в TC оставляет желать лучшего, поэтому, когда есть такая возможность, лично я стараюсь вложенных архивов избегать. На фразу "не у всех есть RAR" можно ответить, что ещё во времена DOS были изобретены SFX-архивы, которые позволяют без ентого самого RAR'а преспокойненько обходиться.

#11:  Author: МоторокерLocation: г. Пермь (читается Перьмь) PostPosted: Thu Oct 12, 2006 11:45
    —
Quote:
А вообще, не надо никаких премудростей.

Описал реальный случай, когда на путере был только Total Commander. Обосновал цифрами.

#12:  Author: CaptainFlintLocation: Москва PostPosted: Thu Oct 12, 2006 12:22
    —
Моторокер wrote:
когда на путере был только Total Commander.

TAR-упаковщик есть в TC, вообще-то. Smile Я хотел сказать, что то же самое можно сделать быстрее и проще, в частности - не переключать степень сжатия ZIP'а, не выводить по Ctrl+B, и не сортировать. Вот, см. результаты моих экспериментов:
Code:
TotalCmd_.tar.zip      38 849 322
TotalCmd_.zip.zip      38 844 474
TotalCmd_b.tar.zip     38 599 674
TotalCmd_b.zip.zip     38 611 219
TotalCmd_bs.tar.zip    38 483 156
TotalCmd_bs.zip.zip    38 509 091

Паковал всю папку Тотала (с плагинами и прочей дребеденью). Упаковка во всех случаях производилась двойная. А именно (обозначения):
TotalCmd_[b[s]].(tar|zip).zip
Если в имени указано "_b" - перед упаковкой было нажато сочетание Ctrl+B.
Если "_bs" - после Ctrl+B файлы ещё были отсортированы по расширению.
Если просто "_", ни того, ни другого выполнено не было.
Первое расширение "(tar|zip)" указывает, чем выполнялась упаковка в первый раз: соотвественно, TAR'ом или ZIP'ом с нулевой степенью сжатия.
Вторая упаковка всегда выполнялась ZIP'ом с 9-й степенью сжатия.

Как видим, результаты отличаются менее, чем на 1% (~366 Кб в абсолютном исчислении), и при этом (если уж гнаться за абсолютом) побеждает всё-таки упаковка, где первое сжатие выполнялось TAR'ом.
При всём при этом упаковка TAR'ом выполняется заметно быстрее, чем "нулевым" ZIP'ом, не говоря уж о том, что для сортировки и Ctrl+B требуется выполнить дополнительные действия, которые могут ещё дополнительно занять время (если каталог большой и разветвлённый), а выигрыш будет мизерным, если он будет вообще.

#13:  Author: МоторокерLocation: г. Пермь (читается Перьмь) PostPosted: Thu Oct 12, 2006 12:35
    —
мм.. вон оно чо.
Правильно говорят: Первый век живи, второй век учись.

#14:  Author: НикLocation: Москва PostPosted: Thu Jul 12, 2007 04:58
    —
Ставим эксперимент Smile

Есть примерно 17 тыс мелких HTML файлов в 16 директориях - файлы новостей (т.е. тексты похожи).

Исходная папка 22 Мб, на диске 66 Мб (NTFS, кластер 4 Кб)

Архив .tar 41 Мб (почему такой размер - может из-за "прокладок" между файлами?)

Архив .zip 18 Мб ("прямой")
Архив .tar.zip 2,5 Мб (разница в 7 раз!!!)
При этом, TAR сжимается вроде бы быстрее, чем сразу исходные файлы.

Архив .7z 1,4 Мб ("прямой")
Архив .tar.7z 1,4 Мб (разница в 10 Кб)
Оба раза одинаково медленно.

Получается, что разные типы файлов нужно сжать разными упаковщиками? А как их делить автоматом по типам?

#15:  Author: CaptainFlintLocation: Москва PostPosted: Thu Jul 12, 2007 10:17
    —
Ник wrote:
(почему такой размер - может из-за "прокладок" между файлами?)

Да. У tar'а эти "прокладки" довольно большие - то ли 512 байт, то ли килобайт.

Ник wrote:
Получается, что разные типы файлов нужно сжать разными упаковщиками? А как их делить автоматом по типам?

Дело не в типах, а в конкретном содержимом как отдельных файлов, так и их всех вместе. Большое количество HTML-файлов - это гигантская экономия на всяких длинных именах тегов, которые постоянно встречаются. Если упаковщик поддерживает анализ содержимого нескольких файлов (хоть сам по себе, хоть трюком с TAR'ом), то эта экономия и проявляется.
А то, что разные упаковщики пакуют разные файлы по-разному - давно известно...



Total Commander -> Общие вопросы


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Goto page 1, 2  Next  :| |:
Page 1 of 2

Powered by phpBB © 2001, 2005 phpBB Group