61

Кроссплатформенные программы иногда распространяются как .tar.gz для версии Unix и .zip для версии Windows. Это имеет смысл, когда содержимое каждого должно быть различным.

Однако, если содержимое будет одинаковым, было бы проще иметь всего одну загрузку. Windows предпочитает .zip, потому что это формат, который он может обрабатывать сразу после установки. Имеет ли это значение в Unix? То есть я сегодня пробовал разархивировать файл на Ubuntu Linux, и он работал нормально; есть ли проблемы с этим в любой текущей Unix-подобной операционной системе, или это нормально, просто предоставить файл .zip по всем направлениям?

7 ответов7

33

tar gz лучше подходит для Linux/Unix, так как он сохраняет права, такие как "исполняемый файл" для скриптов.

31

В наши дни большинство популярных дистрибутивов Linux по умолчанию оснащены zip совместимостью. Но, как утверждает nc3b, tar и gzip чаще встречаются в системах Linux/Unix. Если вам нужна 95% совместимость в этих системах, рассмотрите возможность использования tar и gzip . Если вам нужно только 85%, zip подойдет.

24

Necromancing.
Да, это важно
На самом деле, это зависит.

tar.gz

  • Хранит атрибуты файлов unix: uid, gid, permissions (особенно исполняемые). Значение по умолчанию может зависеть от вашего дистрибутива и может быть переключено с параметрами.
  • Объединяет все файлы, подлежащие архивированию, в один файл ("Tape ARchive").
  • Фактическое сжатие выполняется GZIP, на одном файле .tar

застежка-молния

  • Хранит атрибуты MSDOS. (Архив, Только для чтения, Скрытый, Система)
  • Сжатие каждого файла в отдельности, затем объединение отдельно сжатых файлов в один файл
  • Включает таблицу файлов в конце файла

Поскольку zip сжимает файлы по отдельности, zip-архив, скорее всего, будет иметь больший размер (особенно со многими меньшими файлами - подумайте о файлах конфигурации).

Итак, вы видите, начиная с размера файла, если вы заархивируете кучу файлов в Linux/Unix, а затем разархивируете их, атрибуты файла исчезнут (по крайней мере те, которые не поддерживаются MS-DOS - зависит от того, какой ZIP -программное обеспечение вы используете). Это может иметь значение, а может и не иметь, и в этом случае это не имеет значения (поскольку разница в размере файла в большинстве случаев незначительна).

18

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

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

zip имеет некоторые ограничения по размеру ... в зависимости от используемой версии "zip" ... и это может быть проблемой. но стандартный инструмент info-zip, который поставляется с большинством linux-подобных ОС, не имеет ограничений по размеру и прекрасно сохраняет права доступа к файлам.

см: https://en.wikipedia.org/wiki/Info-ZIP для возможностей

9

Установки Barebones Unix не содержат unzip (т.е. серверные установки), но они всегда содержат tar и gzip. Если ваша аудитория - серверы, я бы пошел на gzip.

Также gzip имеет большую степень сжатия, чем zip, поэтому файл будет меньше.

3

Да, это важно Тар является архиватором. И в tar.gz мы сжимаем этот архив.

Zip - это и архиватор, и компрессор.

Если сравнить сжатие, по моему опыту, gzip намного лучше, чем zip.

И другая существенная разница упоминается в другом ответе. Если у вас очень большой файловый архив и вы хотите извлечь небольшой файл, Zip позволяет вам это сделать. Но с tar.gz вам нужно извлечь весь архив.

1

tar и gzip гораздо чаще встречаются в * nix-es, чем в unzip . Например, на данный момент на моей арке-2009.08 нет unzip .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .