Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Непрерывный ZIP архив – уменьшаем размер архива
Goto page 1, 2  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Секреты и советы printer-friendly view
View previous topic :: View next topic  
Author Message
Моторокер



Joined: 06 May 2005
Posts: 1477
Location: г. Пермь (читается Перьмь)

Post (Separately) Posted: Wed Oct 11, 2006 08:41    Post subject: Непрерывный ZIP архив – уменьшаем размер архива Reply with quote

Иногда на компьютере не бывает нормального архиватора, зато есть 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 байт)

Конечно, ёмкости носителей растут каждый день, тем не менее, совет иногда может пригодиться.
Back to top
View user's profile Send private message
Volniy



Joined: 15 Dec 2004
Posts: 585
Location: Местный

Post (Separately) Posted: Wed Oct 11, 2006 13:01    Post subject: Re: Непрерывный ZIP архив – уменьшаем размер архива Reply with quote

Моторокер wrote:
Ни один архиватор не сделает такой архив за один проход, Рошаль тоже отказался.


От чего он отказался? Может я пропустил что-то... Embarassed
Back to top
View user's profile Send private message
Моторокер



Joined: 06 May 2005
Posts: 1477
Location: г. Пермь (читается Перьмь)

Post (Separately) Posted: Wed Oct 11, 2006 14:06    Post subject: Re: Непрерывный ZIP архив – уменьшаем размер архива Reply with quote

Volniy wrote:
Моторокер wrote:
Ни один архиватор не сделает такой архив за один проход, Рошаль тоже отказался.


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

Отказался встроить подобную фичу в WinRAR, типа запутает юзеров. А так бы удобно было, тем более, что галочка «Непрерывный архив» уже есть.
_________________
плагины для Total Commander, статьи Graphics Converter; NSCopy; SEO HTML; KillOK; Плагин на Delphi
ПармаСруб - строительство домов и бань в Перми
Back to top
View user's profile Send private message
Volniy



Joined: 15 Dec 2004
Posts: 585
Location: Местный

Post (Separately) Posted: Wed Oct 11, 2006 14:26    Post subject: Re: Непрерывный ZIP архив – уменьшаем размер архива Reply with quote

Моторокер wrote:
А так бы удобно было, тем более, что галочка «Непрерывный архив» уже есть.

Так, что, этого разве недостаточно?
Back to top
View user's profile Send private message
Моторокер



Joined: 06 May 2005
Posts: 1477
Location: г. Пермь (читается Перьмь)

Post (Separately) Posted: Wed Oct 11, 2006 14:51    Post subject: Reply with quote

Галочка – конечно хорошо, только
Quote:
Ни один архиватор не сделает такой архив за один проход

_________________
плагины для Total Commander, статьи Graphics Converter; NSCopy; SEO HTML; KillOK; Плагин на Delphi
ПармаСруб - строительство домов и бань в Перми
Back to top
View user's profile Send private message
Volniy



Joined: 15 Dec 2004
Posts: 585
Location: Местный

Post (Separately) Posted: Wed Oct 11, 2006 15:39    Post subject: Reply with quote

Моторокер wrote:
Галочка – конечно хорошо, только
Quote:
Ни один архиватор не сделает такой архив за один проход

Вопрос ведь не в этом. Нужна ли такая экзотика в RAR, если там есть встроенная поддержка solid-архивов. Будет ли какой-то реальный эффект от этого наворота?
Back to top
View user's profile Send private message
Моторокер



Joined: 06 May 2005
Posts: 1477
Location: г. Пермь (читается Перьмь)

Post (Separately) Posted: Wed Oct 11, 2006 16:02    Post subject: Reply with quote

Quote:
Нужна ли такая экзотика в RAR, если там есть встроенная поддержка solid-архивов.

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

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


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

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

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

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


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

Конечно, если много одинаковых файлов. Цифры выше.
_________________
плагины для Total Commander, статьи Graphics Converter; NSCopy; SEO HTML; KillOK; Плагин на Delphi
ПармаСруб - строительство домов и бань в Перми
Back to top
View user's profile Send private message
Nik



Joined: 01 Jan 2005
Posts: 574
Location: Киров

Post (Separately) Posted: Wed Oct 11, 2006 19:04    Post subject: Reply with quote

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

Само собой, Рошаль отказался. Сами посудите - для RAR есть нормальный алгоритм создания непрерывных архивов. Такие архивы нормально распаковывает любой архиватор (поддерживающий формат RAR, разумеется). А каково будет обычному юзеру, у которого даже RAR'а нет, распаковывать такой вот "непрерывный" ZIP-архив? Имхо, проще завести WinRAR Smile
_________________
Качественный хостинг. LibreOffice по-русский.
Back to top
View user's profile Send private message
Моторокер



Joined: 06 May 2005
Posts: 1477
Location: г. Пермь (читается Перьмь)

Post (Separately) Posted: Thu Oct 12, 2006 07:04    Post subject: Reply with quote

Quote:
А каково будет обычному юзеру, у которого даже RAR'а нет, распаковывать такой вот "непрерывный" ZIP-архив?

Не понимаю, в чем проблема? Зашёл в архив, там ещё архив, зашёл в него. Иногда и похлеще варианты встречаются, RAR в ZIP упакуют или наоборот.
_________________
плагины для Total Commander, статьи Graphics Converter; NSCopy; SEO HTML; KillOK; Плагин на Delphi
ПармаСруб - строительство домов и бань в Перми
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 5831
Location: Москва

Post (Separately) Posted: Thu Oct 12, 2006 10:26    Post subject: Reply with quote

Моторокер wrote:
Зашёл в архив, там ещё архив, зашёл в него.

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

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

К сожалению, работа с вложенными архивами в TC оставляет желать лучшего, поэтому, когда есть такая возможность, лично я стараюсь вложенных архивов избегать. На фразу "не у всех есть RAR" можно ответить, что ещё во времена DOS были изобретены SFX-архивы, которые позволяют без ентого самого RAR'а преспокойненько обходиться.
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
Моторокер



Joined: 06 May 2005
Posts: 1477
Location: г. Пермь (читается Перьмь)

Post (Separately) Posted: Thu Oct 12, 2006 11:45    Post subject: Reply with quote

Quote:
А вообще, не надо никаких премудростей.

Описал реальный случай, когда на путере был только Total Commander. Обосновал цифрами.
_________________
плагины для Total Commander, статьи Graphics Converter; NSCopy; SEO HTML; KillOK; Плагин на Delphi
ПармаСруб - строительство домов и бань в Перми
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 5831
Location: Москва

Post (Separately) Posted: Thu Oct 12, 2006 12:22    Post subject: Reply with quote

Моторокер 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 требуется выполнить дополнительные действия, которые могут ещё дополнительно занять время (если каталог большой и разветвлённый), а выигрыш будет мизерным, если он будет вообще.
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
Моторокер



Joined: 06 May 2005
Posts: 1477
Location: г. Пермь (читается Перьмь)

Post (Separately) Posted: Thu Oct 12, 2006 12:35    Post subject: Reply with quote

мм.. вон оно чо.
Правильно говорят: Первый век живи, второй век учись.
_________________
плагины для Total Commander, статьи Graphics Converter; NSCopy; SEO HTML; KillOK; Плагин на Delphi
ПармаСруб - строительство домов и бань в Перми
Back to top
View user's profile Send private message
Ник



Joined: 15 Dec 2004
Posts: 1238
Location: Москва

Post (Separately) Posted: Thu Jul 12, 2007 04:58    Post subject: Reply with quote

Ставим эксперимент 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 Кб)
Оба раза одинаково медленно.

Получается, что разные типы файлов нужно сжать разными упаковщиками? А как их делить автоматом по типам?
_________________
Xubuntu 17.04-64
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 5831
Location: Москва

Post (Separately) Posted: Thu Jul 12, 2007 10:17    Post subject: Reply with quote

Ник wrote:
(почему такой размер - может из-за "прокладок" между файлами?)

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

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

Дело не в типах, а в конкретном содержимом как отдельных файлов, так и их всех вместе. Большое количество HTML-файлов - это гигантская экономия на всяких длинных именах тегов, которые постоянно встречаются. Если упаковщик поддерживает анализ содержимого нескольких файлов (хоть сам по себе, хоть трюком с TAR'ом), то эта экономия и проявляется.
А то, что разные упаковщики пакуют разные файлы по-разному - давно известно...
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Секреты и советы All times are GMT + 4 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group