В общем, я заметил следующее:
- Файлы или инструменты Linux-y используют bzip2 или gzip для распространения архивов
- Windows-ы файлы или инструменты используют ZIP для распространения архивов
- Многие люди используют 7-Zip для создания и распространения своих собственных архивов.
Вопросов:
- Каковы преимущества и недостатки этих форматов, которые кажутся открытыми? Когда / почему я должен выбрать один (скажем, 7-Zip) вместо другого (скажем, ZIP)?
- Почему вышеприведенная тенденция сохраняется, хотя все это портативные форматы? Есть ли какие-то конкретные преимущества использования определенного формата архива на конкретной платформе?
Ответы:
Существует большое разнообразие форматов и методов сжатия, некоторые из них не сжимаются вообще и предназначены для хранения нескольких файлов в одном архиве, а другие более новые экспериментальные компрессоры (на основе PAQ ) предназначены для сжатия настолько агрессивно, насколько это возможно, независимо от времени, которое требуется для выполнения указанной операции.
Вам необходимо оценить функции, которые вам требуются, по вашему выбору метода сжатия, а также рассмотреть контекст, в котором он будет использоваться.
Различные особенности и соображения включают в себя:
Вообще говоря, ZIP является наиболее распространенным форматом, но размеры более 4 ГБ, как правило, не поддерживаются (если вообще), поддержка безопасности обычно считается плохой (стандартный пароль может быть скомпрометирован с помощью атаки обычным текстом, и дальнейшее шифрование обычно реализуется как неофициальная производная формата коммерческими поставщиками программного обеспечения ZIP).
Кроме того, большинство других популярных форматов будут иметь некоторую поддержку во всех операционных системах, устанавливая больше программного обеспечения.
Мой личный выбор - 7-Zip , так как он имеет отличное и гибкое сжатие; несмотря на то, что он имеет специфический пользовательский интерфейс в Windows. Существуют декомпрессоры для Linux и Mac OS X (хотя они не основаны на графическом интерфейсе).
источник
Одна вещь, которая приходит на ум, - это (двухлетнее) сообщение в блоге от Джеффа Этвуда: Сжатие файлов в эпоху многоядерности . В этой статье он обнаруживает, что bzip2 превосходит 7-zip, когда работает более двух ядер.
источник
Для вас первый вопрос, 7-Zip - это архиватор, который может использовать множество алгоритмов для сжатия и распаковки данных.
На ваш второй вопрос, просто убедитесь, что платформа поддерживает инструменты, которые поддерживают данный формат. Например, я бы не использовал RAR на Mac. Хотя его можно использовать и есть бесплатные утилиты, которые его поддерживают, им не хватает гораздо более богатого интерфейса, чем утилиты Windows, которые поддерживают RAR (по моему опыту).
источник
Как уже упоминали другие, выбор конкретного формата сжатия сильно зависит от использования и целевой аудитории.
Архивы .tar.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.
источник
В качестве примера я использую упомянутые форматы в следующих случаях:
Я вообще избегаю RAR , и всякий раз, когда я получаю RAR-файл от кого-то, кого я знаю, я говорю ему / ей прекратить использование этого формата, поскольку он является проповедническим, и что он, вероятно, использует нелицензионное программное обеспечение (большинство людей загружают пробную версию WinRAR и продолжают использовать это навсегда).
PS: я использую Ubuntu (в основном) и Windows (как с двойной загрузкой, так и с VirtualBox).
источник
Существует как минимум четыре отдельных задания, которые часто путают друг с другом, потому что популярные инструменты интегрируют их:
Повсеместное распространение .tar.gz и .tar.bz соответствует философии Unix, заключающейся в том, что небольшие инструменты хорошо выполняют одну работу, а не один инструмент, который делает все. Формат файла TAR не поддерживает сжатие или шифрование, но он может быть сжат любым другим компрессором (включая .tar.zip или .tar.7z). Работа GZip и BZip2 заключается в простом сжатии файлового потока в другой файловый поток. Слой сжатия не должен заботиться о том, как сохранить метаданные, шифрование или контрольную сумму. Однако со временем в
tar
программе было сделано несколько ярлыков для более удобной работы с компрессором.В формате файлов zip и 7z эти отдельные задания выполняются одной программой в одном формате суперфайлов.
Так как это было сделано, исходные коды программ традиционно распространяются как .tar.gz или .tar.bz2, потому что сохранение прав доступа к файлу, времени модификации и т. Д. Важно для различных инструментов, используемых для программирования (например, make).
Отдельный этап архивирования и сжатия работал очень хорошо в течение многих лет, он имеет явное преимущество, заключающееся в возможности свободно смешивать и сопоставлять архив и сжатие, а его недостаток (двухэтапный процесс сжатия) можно легко обойти, разработав более интеллектуальные инструменты ( большинство современных программ сжатия linux напрямую сжимают в .tar.gz или .tar.bz2, скрывая промежуточный шаг).
Нет веских причин для перехода на другие форматы файлов, более новые компрессоры не имеют значительно лучшей степени сжатия, чтобы оправдать нарушение традиции, и tar может сохранить все достаточно хорошо.
источник