Как я могу оценить лучший выбор формата архива для сжатия файлов?

В общем, я заметил следующее:

  • Linux-y файлы или инструменты использовать bzip2 или gzip для распространения архива
  • Windows-y файлы или инструменты используют ZIP для распространения архивов
  • многие люди используют 7-Zip для создания и распространения своих собственных архивов

вопросы:

  • каковы преимущества и недостатки этих форматов, все из которых быть открытыми форматами? Когда / почему я должен выбрать один (скажем, 7-Zip) над другим (скажем, ZIP)?
  • почему тенденция выше, кажется, держать, хотя все это портативные форматы? Есть ли какие-либо конкретные преимущества использования определенного формата архива на конкретной платформе?
8
задан Ruairi Fullam
14.01.2023 14:04 Количество просмотров материала 2830
Распечатать страницу

6 ответов

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

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

различные особенности и соображения включают в себя:

  • возможность сжатия - он сжимает файл достаточно значительно?
  • простота в использовании - если файл будет передан другому пользователю, будет ли архив легко извлечь или потребуется установить больше программного обеспечения?
  • защита паролем и/или шифрования - эти меры безопасности требуется?
  • поддержка нескольких томов - если целевой носитель требует, чтобы файл был разделен на соответствующие куски, поддерживает ли формат это элегантно. Например, 650 МБ для CD.
  • ремонт и восстановление - если файл частично поврежден, предлагает ли он запись восстановления для восстановления данных?
  • поддержка Unicode - поддерживает ли архиватор международные имена файлов или только стандартные ASCII?
  • Системные Требования - современные компрессоры как 7-Zip есть возможность повысить эффективность сжатия с помощью большего словаря (словарь является ссылкой на часто повторяющиеся данные в сжатом файле), но это, в свою очередь, увеличивает потребление памяти как при сжатии, так и при распаковке.
  • поддержка Самораспаковки - может ли архив быть свернут в исполняемый файл, который обеспечивает простоту кому нужно его использовать? (Также имейте в виду, вы можете только создать самоизвлечение на единой платформе. Вообще говоря Windows self-extractor не будет работать на Linux по умолчанию, если не запустить через слой совместимости, как Wine).
  • атрибуты файловой системы - хранит ли компрессор соответствующие метаданные файловой системы и разрешения, которые могут быть сохранены в точке извлечения?

вообще говоря ZIP это самый обычный формат, но размеры более 4 ГБ не поддерживаются вообще (если на всех), поддержка безопасности, как правило, считаются бедными (стандартный пароль с текстового атаки, и дальнейшего шифрования обычно реализуется в качестве неофициального производной от формата коммерческой молнии поставщиков программного обеспечения).

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

мой личный выбор-это 7-Zip, поскольку он имеет большое и гибкое сжатие; несмотря на то, что он имеет своеобразный пользовательский интерфейс в Windows. Есть де-компрессоры для Linux и Mac OS X (хотя и не графический интерфейс, основанный в качестве стандарта).

16
отвечен Ruairi Fullam 2023-01-15 21:52

одна вещь, которая приходит на ум, это (двухлетний) сообщение в блоге от Джеффа Этвуда:сжатие файлов в многоядерную эпоху. В этой статье он находит, что bzip2 превосходит 7-zip при запуске более двух ядер.

8
отвечен matpe 2023-01-16 00:09

для вас первый вопрос, 7-Zip является архиватором, чем может использовать множество алгоритмов для сжатия и распаковки данных.

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

4
отвечен soandos 2023-01-16 02:26

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

  • .смола.gz и tar.архивы bz2 идеально подходят для использования в системах Linux (и, следовательно, для обмена файлами с пользователями Linux), потому что инструменты tar, gzip и bzip2 в значительной степени распространены на платформе и потому, что .формат tar имеет полную поддержку разрешений Unix и других специфичных для платформы свойств. Выбор между gzip и bzip2 для сжатия архива tar в основном решение о скорости по сравнению с коэффициентом сжатия, с bzip2 доставки файлов меньшего размера, но с гораздо более низкой скоростью сжатия. К недостаткам этих форматов можно отнести меньшую совместимость с Windows и (потенциальную) необходимость распаковки всего архива для извлечения одного файла.

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

  • 7-Zip хорошо, если вы хотите максимальную степень сжатия. Как и ZIP, он не поддерживает права доступа к файлам Unix или владения, а также не установлен по умолчанию на большинстве платформ, что делает его немного больше работы, чтобы использовать, но это может быть стоит на Windows, если коэффициент сжатия прибыли важны. В среде Linux было бы лучше использовать инструменты сжатия' xz 'или' lzma 'вместе с tar, которые работают точно так же, как' gzip 'и' bzip2', но используют более продвинутый алгоритм LZMA, такой как 7-Zip.

4
отвечен 2023-01-16 04:43

Как пример, я использую указанные форматы в следующих случаях:

  • текстовые файлы (особенно журналы): bz2
  • коллекция файлов для распространения (например, исходный код): gz (tar.ГЗ на самом деле).
  • ассорти файлов: 7zip. Я могу сжать почти все очень эффективным способом. Кросс-платформенный, с открытым исходным кодом, стабильный, легкий, шифрование файлов (заголовков И данных),... Вы можете попросить что-нибудь еще? :)

Я не РАР в целом, и всякий раз, когда я получаю файл RAR от кого-то, кого я знаю, я говорю ему/ей прекратить использовать этот формат, поскольку он пропиетарный, и, вероятно, он/она использует нелицензионное программное обеспечение (большинство людей загружают пробную версию WinRAR и продолжают использовать ее навсегда).

PS: я запускаю Ubuntu (в основном) и Windows (как с двойной загрузкой, так и с VirtualBox).

2
отвечен glarrain 2023-01-16 07:00

есть, по крайней мере, четыре отдельных задания, которые часто путают вместе, потому что популярные инструменты интегрируют их:

  1. архивирование: возможность объединения нескольких файлов (включая метаданные) в один файл, сохраняя как можно больше вещей. В мире Linux/Unix архивирование традиционно выполняется в формате tar.
  2. сжатие: возможность без потерь минимизировать размер потока двоичных данных. В мире Linux/Unix это традиционно делается GZip и BZip2.
  3. шифрование: возможность шифрования данных с помощью ключей
  4. контрольная сумма: возможность обнаружения (и, возможно, исправления) ошибок.

повсеместность .смола.ГЗ и .тар.bz соответствует философии Unix о малых инструментах, выполняющих одну работу хорошо, над одним инструментом, который делает все. Формат файла TAR не поддерживает сжатие или шифрование, но может быть дополнительно сжат любым компрессором (в том числе as .смола.zip или .смола.7z). Работа GZip и BZip2 просто сжать поток файлов в другой поток файлов, уровень сжатия не нужно заботиться, как сохранить метаданные или шифрования или контрольной суммы. Хотя с течением времени, некоторые ярлыки были сделаны в tar программа для более удобной работы с компрессором.

в формате zip и 7z эти отдельные задания выполняются одной программой в одном формате super file.

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

так как это было сделано, исходные коды программ традиционно распределяются как .смола.gz или .тар.bz2, потому что сохранение прав доступа к файлам, времени модификации и т. д. важны для различных инструментов, используемых для программирования (например, make).

отдельный шаг архивирования и сжатия работал в течение многих лет очень хорошо, он имеет явное преимущество возможности свободно смешивать и сочетать архивирование и сжатие, а его недостаток (2-шаговый процесс сжатия) можно легко обойти, разработав более интеллектуальные инструменты (большинство современных программ сжатия linux будет непосредственно сжимать .смола.GZ или .тар.bz2, что, скрывая промежуточный шаг).

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

1
отвечен Lie Ryan 2023-01-16 09:17

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя

Похожие вопросы про тегам:

7-zip
archiving
compression
gzip
zip
Вверх