Какой метод сжатия лучше в 7zip

Выбираем лучший архиватор для сжатия файлов и распаковки архивов

Пользователи Windows имеют широкий выбор так называемых архиваторов: на рынке доступно множество бесплатных и коммерческих приложений. Все они поддерживают основные функции, такие как распаковка и создание архивов, но отличаются по функциональности, а также по скорости и поддерживаемому размеру создаваемых архивов.

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

Портал Ghacks провел тестирование архиваторов на скорость сжатия файлов и распаковки архивов. Поскольку процесс тестирования архивов различных форматов занимает много времени, в данном испытании сосредоточились на самом популярном формате ZIP.

Основное внимание будет уделено самым популярным и известным архиваторам. Ниже приведены названия и версии протестированных приложений.

Замечания по тестированию

  • В испытании использовались настройки по умолчанию, потому что большинство пользователей используют стандартные настройки. Единственное изменение, которое могло вноситься — это переключение на формат ZIP, если по умолчанию предлагался другой тип архива. Вы можете добиться более высокой производительности, если измените размер слова и словаря, уровень сжатия или количество потоков ЦПУ.
  • Тестирование сжатия выполнялось два раза для каждой программы: один раз с настройками по умолчанию и один раз с максимально возможным уровнем сжатия.
  • Платные программы WinRAR и WinZIP также принимали участие в тестировании.
  • WinZip по умолчанию настроен на максимальное сжатие при выборе формата ZIP.

Протестированные архиваторы

Тестовые образцы

  • Тест на сжатие №1: папка с 11 вложенными папками и 100 файлами, общим размером 949 мегабайт.
  • Тест на сжатие №2: 180 файлов, общим размером 3,46 гигабайт. Среди тестовых файлов были документы, изображения, видеофайлы и файлы других типов.
  • Тест на разархивацию №1: архив ZIP размером 1,36 гигабайт.
  • Тест на разархивацию №2: 10 ZIP архивов, размером от 13 мегабайт до 1,36 гигабайт. Всего содержали более 20000 файлов, общим размером 4,09 гигабайт.

Результаты: сжатие

Результаты: разархивация

Анализ и выводы

Некоторые результаты были неожиданными. Bandizip хорошо показал себя во всех задачах сжатия. Программа оказалась лидером во всех тестах и часто опережала ближайшего преследователя с огромным отрывом. Создание первого архива с помощью Bandizip заняло всего 5 и 11 секунд соответственно, в то время как WinRAR выполнил эти же операции за 13 и 23 секунды.

Bandizip быстрее всех справился со вторым тестом на сжатие. Программе понадобилось 45 и 46 секунд для создания гигабайтного архива со стандартным и максимальным уровнем сжатия соответственно. 7-Zip также неплохо справился с тестом на сжатие со стандартными настройками и лишь 2 секунды уступил Bandizip. При переключении на максимальное сжатие, результаты были гораздо хуже — 7-Zip потребовалось в 10 раз больше времени для создания архива, чем Bandizip.

Второе место занял WinRAR, которому потребовалось примерно в два раза больше времени, чем Bandizip.

В тесте на распаковку готовых архивов программы были очень близки по результатам. Bandizip показал наилучшие результаты в первом тесте — для извлечения первого тестового архива потребовалось всего 8 секунд. Второе место разделяют 7-Zip, PeaZip, и WinZIP, которые выполнили эту задачу за 12 секунд. Третье место досталось WinRAR, который выполнил разархивацию за 13 секунд.

Во втором испытании на распаковку архивов ситуация заметно изменилась. PeaZip выбился в лидеры с результатом в 69 секунд. Ближайшим преследователем стал 7-Zip — ему потребовалось на секунду больше. Bandizip, который показал хорошие результаты в других испытаниях, на этот раз отработал не лучшим образом — 117 секунд. Замыкает таблицу WinZip с результатом в 480 секунд.

Таким образом, бесплатные архиваторы показали достойные результаты во время тестирования, и, по крайней мере, одному из них удалось превзойти коммерческие приложения во всех испытаниях. WinRAR показал более впечатляющую производительность, чем WinZip несмотря на то, что ZIP все же является основным форматом для WinZip.

Скорость и размер — это лишь два критерия, которые важно учитывать при выборе архиватора. Однако, имеют значение и другие факторы: параметры сжатия, поддержка различных форматов архива или техническая поддержка для организаций.

На основе полученных результатов можно дать следующие рекомендации. Если вам часто приходится создавать архивы, то рассмотрите бесплатную программу Bandizip, которая продемонстрировала высокую эффективность. Если в приоритете размер сжатия, то попробуйте 7-Zip или PeaZip. WinRAR может стать подходящим вариантом, если вы предпочитаете RAR-архивы. Дополнительным бонусом является то, что вы можете использовать PAR инструментарий (MultiPar, QuickPar) для создания файлов восстановления.

Если вы преимущественно разархивируете сжатые файлы, то можете выбрать любую из протестированных программ, за исключением WinZip, который отработал довольно слабо в испытании.

Какими архиваторами пользуетесь вы? Почему вы выбрали именно их?

7-Zip (7z) — бесплатный файловый архиватор с высокой степенью сжатия данных

7-Zip — бесплатный файловый архиватор с высокой степенью сжатия данных.

7-Zip поддерживает несколько алгоритмов сжатия и множество форматов данных, включая собственный формат 7z c высокоэффективным алгоритмом сжатия LZMA.

Программа разрабатывается с 1999 года, она бесплатна и имеет открытый исходный код, большая часть которого свободно распространяется на условиях лицензии GNU LGPL, за исключением кода распаковщика UnRAR, который имеет ограничения. Основная платформа — Windows (в том числе Windows CE), где доступны две версии программы: с графическим интерфейсом и версия для командной строки.

  • Поддерживаемые алгоритмы:LZMA, LZMA2, PPMd, Bzip2, Deflate и Deflate64
  • Высокая степень сжатия благодаря новому формату 7z с компрессией LZMA
  • Поддерживаемые форматы:
    • Архивирование / разархивирования: 7z, ZIP, GZIP, BZIP2 и TAR
    • Только разархивирование: ARJ, CAB, CHM, CPIO, DEB, DMG, HFS, ISO, LZH, LZMA, MSI, NSIS, RAR, RPM, UDF, WIM, XAR и Z.
  • Очень высокая степень сжатия в формате 7z примерно на 4–25% лучшее сжатие, чем формат ZIP.
  • Для форматов ZIP и GZIP, архиватор 7-Zip предлагает сжатие которое в 2-10 % лучше чем сжатие предоставляемое архиваторами PKZip и WinZip.
  • Возможность шифрования алгоритмом AES-256 для форматов 7z и ZIP.
  • Возможность самораспаковки для формата 7z.
  • Интегрирование в проводник Windows.
  • Переведен на 87 языков мира, включая русский.
Читать еще:  Парковка ядер многоядерных процессоров в Windows 7

7-Zip работает в Windows 10/8/7/Vista/XP/2012/2008/2003/2000/NT. Также существует портированая версия для командной строки Linux/Unix.

В настоящее время выпущено очень много версий 7-Zip , последнюю актуальную версию архиватора можно скачать по ссылке:

Но наиболее стабильные и надежные, остаются версия 9.хх. В настоящее время активно используется, в том числе и в корпоративной среде версия 7-Zip 9.38, скачать которую можно по ссылке:

Достоинства архиватора 7-Zip

  • Бесплатное ПО
  • Высокая степень сжатия и многопоточность.
  • Высокая скорость распаковки (для архивов с методом сжатия LZMA).
  • Поддержка 64-разрядных систем.
  • Тонкая настройка алгоритмов сжатия, есть готовые предустановки.
  • Объём файлов в одном архиве формата 7z может составлять 16 эксабайт
  • Не поддерживается сохранение информации о правах доступа к файлам.
  • Не поддерживается добавление в архивы информации для восстановления, а сам архивный формат 7z не защищён от повреждений, поэтому даже при небольшой порче данных архив становится полностью непригодным – никакие данные извлечь из него не удастся (в отличие от архивов в формате RAR или ZIP).
  • Нет справки на русском языке.

Использование программы

Для Windows 10 запуск программы осуществляется через меню Пуск -> Все приложения -> 7-Zip

Главное окно программы 7-Zip представлено на скриншоте ниже.

После установки программы, необходимо перейти в меню Сервис -> Настройки и в разделе система нажать две кнопки со знаком + (плюс) для ассоциации всех архивов с программой 7-Zip. Ассоциация — это значит что форматы выбранных файлов будут открываться по умолчанию определённой программой, в нашем случае архиватором 7-Zip.

Далее я опишу особенности создания и распаковки архивов в программе 7-Zip.

Создание архива

Предположим у нас есть папка «Новая папка».

Щёлкнув по правой кнопкой мыши по папке, в контекстном меню переходим к пункту 7-Zip, при это раскроется дополнительное меню, представленное на скриншоте ниже.

На выбор предоставляется большое число вариантов. Самый простой способ это пункт 3, т.е. Добавить к «Новая папка.7z» — этот пункт немедленно запустит процедуру создания архива без каких либо вспомогательных окон, т.е. быстро и эффективно.

Но это эффективно в том случае, если предыдущий архив был сделан с оптимальными настройками и 7-Zip, запомнив их, создает последующие архивы по аналогии.

Разберем примеры использования дополнительных, так называемых “тонких” настроек программы архиватора.

Иногда возникают случаи когда необходимо создать архив и отправить его по электронной почте.

Если известно, что у адресата письма стоит тоже архиватор 7-Zip, предположим такая же версия, в нашем случае 9.38. В этом случае, для уменьшения размера отправляемого файла, я рекомендую сделать настройки приведенные на скриншоте ниже. А именно:

После этого нажать кнопку “Ок” для создания архива.

Если же ситуация другая и нам не известно какой у получателя архиватор, то может возникнуть проблема распаковки архива. Т.е. архив просто не откроется и не распакуется. Возникнет ошибка.

Чтобы этого избежать, я рекомендую в поле формат архива — установить «zip«, параметр «Уровень сжатия» оставить «нормальный». Пример настроек представлен ниже/

В этом случае созданный архив будет нормально открывать и распаковываться любым архиватором.

После этого нажать кнопку “Ок” для создания архива.

Распаковка архива

Предположим у нас есть архив «arhive.7z».

Щёлкнув по правой кнопкой мыши по архиву, в контекстном меню переходим к пункту 7-Zip, при это раскроется дополнительное меню, представленное на скриншоте ниже.

На некоторых пунктах меню стоит остановится подробнее.

Выбор этого пункта приведет к запуску программы 7-Zip File Manager (т.е. откроется главное окно 7-Zip ) и позволит, не распаковывая архив, ознакомиться с его содержимым, а при необходимости извлечь конкретный файл, а не распаковывать целиком весь архив.

Выбор этого пункта приведет к немедленной распаковке архива в текущую папку. Обратите внимание! Если внутри архива находится группа файлов, то при распаковке эти файлы будет очень тяжело найти в общей кучи файлов, поэтому нужно либо создать новую пустую папку и в ней выполнить такую распаковку либо выбрать пункт меню ниже.

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

Сравниваем: какой формат сжатия файлов лучше?

Какие форматы сжатия файлов вы бы использовали? Скорее всего, именно Zip, RAR, 7z, ведь они самые популярные. Было проведено несколько тестов, которые помогут определиться, какой формат сможет дать максимальный уровень сжатия и какой самый удобный в использование.

Стоит заметить, что степень сжатия является не самым главным фактором по тому что некоторые форматы более удобны, или интегрированы в операционную систему, в тоже время другие могут являться частью стороннего программного обеспечения.

Сжатие файлов эталонов популярными архиваторами

На самом деле всё не так просто, как может показаться на первый взгляд. Степень достигаемого сжатия зависит больше от программы архиватора, её настроек и алгоритмов. В тестирование вместо обыкновенных файлов документов Microsoft Office, в свою очередь уже использующих сжатие, было решено использовать сжатие уже установленных компьютерных игр.

Но тут может возникнуть вопрос, почему именно игры? Но ответ на самом деле кроется совсем близко, ведь игры включают в себя графику, музыку, текстовые файлы, исполняемые файлы, не говоря уже о других типах файлов, игры сочетают в себе всю информацию, которая может использоваться для сжатия в повседневной жизни. Вы так же можете подробнее узнать что такое файл, перейдя по ссылке.

Первой стала Bastion (Бастион), установленная игра имела размер около 863 мегабайт: музыки, графических и исполняемых файлов, плюс ко всему этому разные типы документов и вот что было получено:

  • Zip (Windows 8.1): 746 МБ (86.4% от оригинального размера);
  • Zip (WinZip): 745 МБ (86.3% от оригинального размера);
  • RAR (WinRAR): 746 МБ (86.4% от оригинального размера);
  • 7z(7-Zip): 734 МБ (85 % от оригинального размера).

Следующей для проведения тестирования была выбрана игра Hotline Miami (Горячая линия Маями), которая имела размер 654 Мб:

  • Zip (Windows 8.1): 316 MB (48.3% от оригинального размера)
  • Zip (WinZip): 314 MB (48% от оригинального размера)
  • RAR (WinRAR): 307 MB (46.9% от оригинального размера)
  • 7z (7-Zip): 301 MB (46% от оригинального размера)

Кто же стал лидером файлового сжатия на основе тестов

Лидером чистого сжатия становится формат 7z, что на самом деле это не является удивительным для этого популярного формата. Если вы хотите, что ни будь сжать и использовать при этом как можно меньше места для хранения, нужно использовать именно 7z. Если ко всему этому воспользоваться настройками программы для экономии ещё большего места, то сжать необходимый файл можно ещё лучше. При этом, время сжатия и дальнейшей распаковки тоже увеличится.

Читать еще:  Windows 10 отключить uac полностью

Результаты RAR и Zip были очень близки друг к другу, а для интегрированной в Windows 8.1 WinZip не составит труда открыть формат Zip.
Для максимально сжатия лучше использовать 7-Zip с 7z, а вот для большего удобства и максимальной совместимости лучшим будет создание Zip-файлов, с помощью интегрированного в операционной системе функционала.

Если вы используете сжатие для себя, то можно использовать любой формат, который вам захочется и ни каких проблем с дальнейшим открытием не возникнет. Но не у всех на компьютерах установлено то или иное ПО (программное обеспечение) для открытия запакованных файлов. Например, если вы размещаете архивы в интернете, то нужно использовать формат, которым скачавшие его люди смогут без труда воспользоваться, самый популярный.

Популярные форматы, которые уже интегрированные в операционные системы:

  • Windows: только zip. Эта функция была добавлена ещё во времена Windows XP, скорее всего каждый пользователь системы Windows сможет создавать и извлекать zip файлы.
  • Mac OS X: формат сжатия zip поддерживается, а для прочих форматов архивов как tar, gz, bz2, 7z и rar потребуется установка стороннего программного обеспечения.
  • Linux: Zip поддерживается прямо после установки, да большинство форматов сжатия могут быть использованы, но не без дополнительного программного обеспечения
  • Crome OS: zip и rar поддерживаются, как и tar, gz, tar и bz2, но для этих расширений так же придётся установить дополнительные приложения.

Windows по умолчанию поддерживает только Zip файлы, так как Zip наиболее популярный и универсальный формат, но, если вам приходится работать с Mac или Linux вы, конечно же, можете использовать такой формат сжатия как 7z, но тогда вам придётся установить приложение для его открытия.

Все же если целью является получение лучшего сжатия, то 7z – это путь в правильном направление, а вот если важнее удобство использования как для себя, так и для других, то самым распространённым и как следствие удобным в использование форматом сжатия будет, как написано ранее zip.

Результаты произведённых тестов являются обобщёнными. Получены разные результаты архивирования с разными типами данных, но благодаря общим результатам можно на наглядном примере убедиться в расходящихся результатах для разных форматов сжатия и определиться с подходящим.

Архивация и компрессия файлов. Часть 2

Многие файлы содержат сколь-нибудь повторяющуюся, лишнюю информацию. Поэтому технически возможно преобразовывать её так, чтобы уменьшить общий размер. Это и есть компрЕссия (compression, «компрЕшэн»), или сжатие, данных.

Сжатие не следует воспринимать как «удаление ненужных частей». Важно, чтобы восстановленный файл имел точно такое же содержимое, что исходный (совпадения размеров файлов — не достаточно).

Есть много алгоритмов компрессии и много форматов сжатых файлов. В UNIX и Linux популярны форматы сжатия Bzip2, Gzip (традиционный), LZMA, XZ. Для примера — те же три файла:

Компрессор gzip для формата Gzip обычно удаляет файл-операнд; иначе нужна опция -k (от keep):

Шаблоны имён здесь раскрывает оболочка. Расширение имени здесь добавляется, а не заменяет исходное.

Понятие «степень сжатия» (compression ratio) толкуется по-разному: 1) «какую долю от размера исходного файла составляет размер сжатого файла» либо 2) «какую долю удалось убрать». Обычно выражается в процентах.

Выше видно, что нулевой файл имеет степень сжатия (1) в четыре процента (то есть сжат в 25 раз), случайный файл — 104% (то есть лучше было бы его вовсе не сжимать), текстовый файл — 32% (то есть примерно втрое уменьшился).

Вот вывод компрессором информации об архиве, в том числе степени сжатия в смысле (2):

$ gzip -l file3.txt.gz | column -t

compressed uncompressed ratio uncompressed_name

29806 102400 70.9% file3.txt

В выводе не учтены внутренние вспомогательные данные формата, здесь — около 3 КиБ: 100 — 71 = 29; 32 — 29 = 3.

Нередко алгоритм допускает несколько степеней сжатия. По умолчанию программа обычно выбирает нечто среднее. За более сильное сжатие (меньше размер) приходится платить увеличенными временем упаковки и расходом оперативной памяти. Нередко выигрыш в степени сжатия оказывается незначителен. Скорость распаковки остаётся прежней.

file2.rnd: -0.0% — replaced with file2.rnd.gz

file3.txt: 70.9% — replaced with file3.txt.gz

В данном случае — никакой разницы.

Опция -f — принудительное выполнение (от force), то есть здесь — заменить (replace) уже существующий сжатый файл новым. Опция —best — сжать наилучшим доступным алгоритмом (с параметрами, нацеленными на наиболее сильное сжатие).

Можно попробовать другой компрессор/формат, например bzip2 (Bzip2, «.bz2»):

$ bzip2 -k file3.txt

Здесь есть небольшой выигрыш: 32 — 28 = 4.

Нет простого способа узнать, насколько сильным будет сжатие. Тексты часто сжимаются со степенью (1) ниже 50%. Хуже всего сжимаются хаотичные (случайные, шум) данные.

Для удобства можно считать, что для файлов средних размеров сжатие уместно, если степень (1) составляет 60% и ниже (то есть сэкономлено 40% места и больше). Если файл большой (1 ГиБ и выше), то даже небольшая экономия при сжатии может быть уместна. Уже сжатый файл обычно бесполезно сжимать ещё раз. Файлы размером ниже 3 КиБ сжимать тоже бесполезно.

Для «декомпрессии» (распаковки, извлечения оригинала) сжатого файла часто есть не только опция компрессора, но и отдельная программа-распаковщик. Или сам компрессор может быть запущен под другим именем файла (например, с жёсткой ссылкой) для распаковки — это зависит от программиста.

$ gzip -d -kf file2.rnd.gz

$ gunzip -kf file2.rnd.gz

Здесь или опция -d, или программа gunzip. Опции -k, -f — с прежним смыслом. Аналогично с BZip2:

$ bzip2 -d -kf file3.txt.bz2

$ bunzip2 -kf file3.txt.bz2

$ diff -qs /bin/bunzip2 /bin/bzip2

Файлы /bin/bunzip2 и /bin/bzip2 идентичны

Чтобы задействовать содержимое оригинального (несжатого файла), обычно нужно явным способом распаковать сжатый. На это тратится процессорное время; в мобильном компьютере может быть повышенный расход заряда аккумулятора. Кроме того, степень сжатия непредсказуема или даже (1) выше 100%, поэтому при массовых правках файлов свободное место на диске может внезапно закончиться.

Чтобы задействовать содержимое оригинального (несжатого файла), обычно нужно явным способом распаковать сжатый. На это тратится процессорное время; в мобильном компьютере может быть повышенный расход заряда аккумулятора. Кроме того, степень сжатия непредсказуема или даже (1) выше 100%, поэтому при массовых правках файлов свободное место на диске может внезапно закончиться.

Читать еще:  Как поменять шрифт на компьютере Windows 7

Есть несколько форматов файловых систем, где файлы сжимаются/распаковываются автоматически (говорят: «на лету» (on-the-fly) или «прозрачная (transparent) распаковка»).

Есть аналоги привычных утилит с именами, начинающимися на bz (для BZip2), xz или z (GZip): bzcat, bzless, bzgrep и другие. Делают то же, что оригиналы, но со сжатыми файлами.

Midnight Commander, подобные ему двухпанельные диспетчеры файлов, некоторые другие диспетчеры — могут открывать/распаковывать архивы/сжатые файлы. Иногда есть возможность имитировать монтирование архива как каталога (только на чтение, иногда ещё и на запись). В таких случаях программе может понадобиться предварительно распаковать файлы во временный каталог (обычно куда-то в /tmp/). Это заметно как зависание программы при работе с большим (несколько десятков МиБ и выше) архивом.

В UNIX и Linux компрессия традиционно является операцией над одиночным файлом. То есть для компрессии каталога с содержимым — нужно сначала создать архив, а потом его сжимать (либо, реже, — сжать каждый файл, а потом заархивировать всё).

Архиватор tar может задействовать какой-либо компрессор, если тот воспринимает просто имя файла как сигнал к сжатию либо воспринимает опцию -d как сигнал к распаковке (декомпрессии). Опции tar для внешних компрессоров: -z для gzip, -j для bzip2, -J для xz. Для остальных компрессоров — опция -I (заглавная i, после которой указать имя программы). Примеры:

# Архив tar внутри сжатого файла Gzip одной командой.

$ tar -cvz -f archive.tar.gz «old»

$ du -s archive.tar.gz

archive.tar.gz: gzip compressed data

# Архив tar внутри сжатого файла Bzip2 одной командой.

$ tar -cj -f archive.tar.bz2 «old»

$ du -s archive.tar.bz2

archive.tar.bz2: bzip2 compressed data, block size = 900k

# Архив tar внутри сжатого файла LZMA одной командой.

$ tar -c -I lzma -f archive.tar.lzma «old»

$ du -s archive.tar.lzma

archive.tar.lzma: LZMA compressed data, streamed

Вместо множественных расширений вида «.tar.gz» могут попадаться одиночные: «.tgz», «.tbz», «.txz» и другие — по традиции или при необходимости соблюдать ограничения на длину имени. Устаревший компрессор — compress; расширение «.Z»; в tar есть опция -Z.

# Примеры распаковки сжатых архивов одной командой:

$ tar -xj -f archive.tar.bz2

$ tar -x -I lzma -f archive.tar.lzma

Чтобы изменить содержимое сжатого архива, программе приходится его предварительно распаковывать, а после внесения изменений — заново упаковывать обратно. Это затраты времени, оперативной памяти и, возможно, пространства на диске для временного хранения. Может оказаться удобнее — упаковать файлы в поддереве по отдельности, не создавая архива. У gzip/gunzip есть опция -r (от recursive). Для других программ можно задействовать find (и, если нужно, xargs).

В семействе Windows привыкли воспринимать архивацию и компрессию как единую, неделимую операцию. Часто говорят «заархивировать» в смысле «получить сжатый архив»; «разархивировать» — «выполнить и декомпрессию, и извлечение из архива». Или: «упаковать» и «распаковать» файлы. И сжатые файлы называют «архивами». Для большинства пользователей важно именно сжатие данных, а архивация подразумевается сама собой.

Популярные в Windows форматы сжатых файлов с возможностью хранения файлового поддерева (архива): ZIP, RAR. Соответственно программы: для командной строки — zip.exe, rar.exe; для GUI — WinZip, WinRAR. Диспетчер файлов системы Windows — Проводник (Explorer) может смонтировать архив ZIP как подкаталог там, где находится сам файл архива. Есть и другие программы, в том числе поддерживающие много форматов, например: 7-Zip, PeaZip (и вышеуказанные WinZip, WinRAR).

Набор программ p7zip (в том числе 7z, 7za) является вариантом 7-Zip для командной строки UNIX и Linux. Формат 7z может давать более сильное сжатие, чем Gzip и Bzip2.

В Linux может быть проблема с форматом ZIP для файловых имён, содержащих не-латиницу. У ZIP есть свой внутренний формат хранения имён. Если создать архив в Windows, а потом попытаться распаковать в Linux, имена превратятся в наборы кракозябров. В последнее время дистрибутивы обычно поставляют исправленные программы unzip и zip. Или придётся пробовать перекодировать имена программой iconv или convmv.

Возможные (ненадёжно) варианты перекодировки имени (предполагаемый в примере файл сохранил расширение «.pdf» на латинице, поэтому файл можно как-то задействовать через шаблон оболочки):

$ N=$(ls *.pdf | iconv -f cp1252 -t cp850 | iconv -f cp866)

# Или другой вариант:

$ N=$(ls *.pdf | iconv -t iso8859-1 | iconv -f cp866)

# После каждого варианта просмотреть

# содержимое переменной N для перекодированного имени.

# И если имя выглядит разумно, то:

Программы для Windows часто поставляются в виде особых архивов, в том числе формата Microsoft Cabinet («.cab»). Такие архивы по лицензионным соглашениям запрещено распаковывать вручную. Для Linux есть программа cabextract.

Иногда в России встречаются старые форматы архивов с внутренней компрессией: ARJ, HA, LHA и другие. Для Linux могут найтись программы: arj, ha, unar. Иначе может понадобиться устанавливать FreeDOS/Wine или иную среду выполнения DOS/Windows-программ, а потом искать соответствующие декомпрессоры.

В Windows нередко создают «самораспаковывающиеся» (self-extracting) архивы: это программа-распаковщик, к которой присоединён собственно архив. Как и обычная программа для Windows, имеют расширение «.exe». Предназначены для пользователей, у которых нет своей копии распаковщика. Иногда такой архив можно распаковать и в Linux (зависит от формата архива и наличия программ, например 7-zip). Нежелательны к применению, потому что могут содержать программы-вирусы. Не следует запускать напрямую, а лучше — открыть отдельным распаковщиком. В Linux иногда делают сценарии оболочки, состоящие из команды на распаковку и присоединённого к сценарию архива; программы: makeself, shar (sharutils).

В некоторых форматах архивов и/или сжатых файлов предусмотрено шифрование с паролем: 7z, RAR, ZIP и другие.

Компрессия данных может встретиться и на системном уровне. Например, в некоторых файловых системах нулевые фрагменты (пустые блоки) внутри файлов не хранятся и не копируются (это называется «разреженные файлы», sparse files).

Программы для GUI: Archive Manager (File Roller) для GNOME, Ark для KDE, Engrampa для MATE, PeaZip, Xarchiver. Они отображают содержимое архивов, подобно тому как диспетчеры файлов отображают содержимое каталогов; предоставляют меню команд создания/распаковки архивов. Но сами не содержат программного кода архиваторов/компрессоров, поэтому требуют установки библиотек (libarchive, liblzma, unrar и других) и самих архиваторов/компрессоров для командной строки.

В файлах мультимедиа (изображения, звук, видео) часто применяют алгоритмы «несимметричного» сжатия, то есть с частичной потерей информации. Это позволяет сжать данные ещё сильнее (в десятки или больше раз). Некоторые потери в деталях изображений или в звуковых волнах уместны, если средний человек эти оттенки/детали/шумы и прочее не различает. Такие алгоритмы обычно имеют широкий набор настроек, поэтому нужно следить за тем, чтобы качество мультимедиа не стало плохим, явно заметным.

Ссылка на основную публикацию
Adblock
detector