bzip
и gzip
работа над единственными файлами, не группы файлов. Простой zip
(и pkzip
) воздействуют на группы файлов и имеют понятие встроенного архива.
*отклоняют философию, один из мелких инструментов, которые делают определенные работы очень хорошо и могут быть объединены в цепочку вместе. Вот почему существует два инструмента здесь, которые имеют определенные задачи, и они разработаны для установки хорошо вместе. Это также означает, что можно использовать tar для группировки файлов, и затем у Вас есть выбор инструмента сжатия (bzip
, gzip
, и т.д.).
Tar не является только форматом файла, но и это - формат лент. Ленты хранят данные поразрядно. Каждая реализация устройства хранения данных была пользовательской. Tar был методом, которым Вы могли взять данные от диска и сохранить их на ленту способом, что другие люди могли получить их без Вашей пользовательской программы.
Позже, программы сжатия появились, и *отклоняют все еще, только имел один метод создания единственного файла, который содержал несколько файлов.
я полагаю, что это - просто инерция, которая продолжила tar.gz тенденцию. Pkzip, запущенному и со сжатия и с архивирования одним махом, но тогда систем DOS, обычно не присоединяли ленточные накопители!
Из Википедии для Tar_ (file_format)
В вычислении, tar (полученный из ленточного архива) является оба форматом файла (в форме типа потока битов архива), и название программы раньше обрабатывало такие файлы. Формат был стандартизирован POSIX.1-1988 и позже POSIX.1-2001. Первоначально разработанный как формат .raw, используемый для резервного копирования на магнитную ленту и других с последовательным доступом устройств в целях резервирования, это является теперь наиболее часто используемым для сопоставления наборов файлов в один больший файл, для распределения или архивации, при сохранении информации о файловой системе, таких как пользователь и полномочия группы, даты и структуры каталогов.
Tar = файлы Групп в 1 файле
GZip = Zip файл
Они разделяют процесс в 2. Вот именно.
В Windows environnement, что Вы могли бы более использоваться для использования WinZip или WinRar, которые делают Zip. Процесс Zip их, программное обеспечение действительно группирует файл и архивирование, но Вы просто не видите тот процесс.
Обычно в *nux мир, пакеты файлов распределяются как tarballs и затем дополнительно gzipped. Gzip является простой программой сжатия файла, которая не делает, файл, связывающий тот tar или zip, делает.
Когда-то, zip правильно не обработала некоторые вещи что tar Unix и файловые системы Unix, которые рассматривают нормальными, как символьные ссылки, смешанные досье, и т.д. Я не знаю, изменяется ли это, но вот почему мы используем tar.
tar популярен главным образом по историческим причинам. Существует несколько легко доступных альтернатив. Некоторые из них вокруг для почти пока tar, но не могли превзойти tar в популярности по нескольким причинам.
А главное преимущество (и оборотная сторона) tar состоит в том, что это не имеет ни заголовка файла, ни центрального каталога содержания. Много лет это поэтому никогда не страдало от ограничений в размере файла (пока это десятилетие, где предел на 8 Гбит на файлы в архиве стал проблемой, несколько решенных годы назад).
Apperantly одна оборотная сторона tar.gz (или площадь. Z в этом отношении), который является, что необходимо распаковать целый архив для извлечения единственных файлов и списка содержания архива, никогда не причинять людям боль достаточно, чтобы заставить их дезертировать от tar в значительном количестве.
gzip и bzip2 являются просто компрессором, не archiver-программным-обеспечением. Следовательно, комбинация. Вам нужно программное обеспечение tar для связывания всех файлов.
сам ZIP и RAR также являются комбинацией двух процессов.
Я думаю, что Вы искали больше исторического контекста к этому. Исходная zip была для единственного файла. Tar используется для размещения нескольких файлов в единственный файл. Поэтому смолить и архивирование являются двумя процессами шага. Почему это является все еще настолько доминирующим, сегодня чье-либо предположение.
Из Википедии для Tar_ (file_format)
В вычислении, tar (полученный из ленточного архива) является оба форматом файла (в форме типа потока битов архива), и название программы раньше обрабатывало такие файлы. Формат был стандартизирован POSIX.1-1988 и позже POSIX.1-2001. Первоначально разработанный как формат .raw, используемый для резервного копирования на магнитную ленту и других с последовательным доступом устройств в целях резервирования, это является теперь наиболее часто используемым для сопоставления наборов файлов в один больший файл, для распределения или архивации, при сохранении информации о файловой системе, таких как пользователь и полномочия группы, даты и структуры каталогов.
Другая причина это настолько распространено, состоит в том, что tar и gzip идут, почти все *ОТКЛОНЯЮТ основу установки там. Я полагаю, что это - вероятно, единственная самая большая причина. Это также, почему zip-файлы чрезвычайно распространены в Windows, потому что поддержка встроена, независимо от превосходящих стандартных программ в RAR или 7z.
tar GNU также позволяет Вам создавать/извлекать эти файлы из одной команды (один шаг):
tar -cfvj destination.tar.bz2 *.files
tar -cfvz destination.tar.gz *.files
Извлечение Архив: (-C часть является дополнительной, она принимает значение по умолчанию к текущему каталогу)
tar -xfvj archive.tar.bz2 -C destination_path
tar -xfvz archive.tar.gz -C destination_path
, Это то, что я запомнил со своих многих лет на Linux и недавно на Nexenta (OpenSolaris).
В мире Unix большинство приложений разработано, чтобы сделать одну вещь и сделать это хорошо. Самые популярные утилиты zip в Unix, gzip и bzip2, только регистрируют сжатие. tar делает конкатенацию файла. Передача по каналу вывода tar в утилиту сжатия делает то, что необходимо, не добавляя чрезмерную сложность ни к одной части программного обеспечения.
Забавная вещь, можно получить поведение, не ожидаемое создателями tar
лет и gzip
. Например, Вы не можете только gzip файл tar, можно также смолить gzipped файлы, для создания files.gz.tar
(это технически было бы ближе к пути pkzip
работы). Или можно поместить другую программу в конвейер, например, некоторая криптография, и можно выбрать произвольный порядок того, чтобы смолить, gzipping и шифрования. Кто бы ни записал, что программа криптографии не должна иметь ни малейшего представления, как его программа использовалась бы, все, что он должен сделать, читается из стандартного входа и записи к стандартному выводу.
Это нечетно, что никто еще не упомянул, что современные версии GNU tar
позволяют Вам сжиматься, поскольку Вы связываетесь:
tar -czf output.tar.gz directory1 ...
tar -cjf output.tar.bz2 directory2 ...
можно также использовать компрессор выбора, если это поддерживает' -c
' (к stdout, или от stdin) и' -d
' (распаковка) опции:
tar -cf output.tar.xxx --use-compress-program=xxx directory1 ...
Это позволило бы Вам определять любой альтернативный компрессор.
[ Добавленный : Если Вы извлекаете от gzip
или bzip2
сжатые файлы, GNU tar
автоматически обнаруживает их и запускает соответствующую программу. Таким образом, можно использовать:
tar -xf output.tar.gz
tar -xf output.tgz # A synonym for the .tar.gz extension
tar -xf output.tar.bz2
и они будут обработаны правильно. Если Вы используете нестандартный компрессор, то необходимо определить это, когда Вы делаете извлечение.]
причина разделения, как в выбранном ответе, разделении обязанностей. Среди других вещей это означает, что люди могли использовать' cpio
' программа для упаковки файлов (вместо [1 111]) и затем использовать предпочтительный компрессор (когда-то давно, предпочтительный компрессор был pack
, позже это было compress
(который был намного более эффективным, чем [1 114]), и затем gzip
, который заткнул обоих его предшественников за пояс и совершенно конкурентоспособен по отношению к [1 116] (который был портирован к Unix, но не собственный там), и теперь bzip2
, который, по моему опыту, обычно имеет 10-20%-е преимущество перед [1 118].
[ Добавленный : кто-то отметил в их ответе, что cpio
имеет забавные соглашения. Это правда, но пока GNU tar
не получил соответствующие опции (' -T -
'), cpio
была лучшая команда, когда Вы не хотели архивировать все, что было под данным каталогом - Вы могли на самом деле выбрать точно, какие файлы были заархивированы. Оборотная сторона [1 123] была то, что Вы не [только 1 132] могли выбирать файлы - Вы имели для выбора их. Существует все еще одно место где cpio
очки; это может сделать копию на месте от одной иерархии каталогов до другого без любого промежуточного устройства хранения данных:
cd /old/location; find . -depth -print | cpio -pvdumB /new/place
Кстати,' -depth
' опция на [1 126] важна в этом контексте - это копирует содержание каталогов прежде, чем установить полномочия на самих каталогах. Когда я проверил команду прежде, чем ввести дополнение к этому ответу, я скопировал некоторые каталоги только для чтения (555 разрешений); когда я пошел для удаления копии, я должен был ослабить полномочия на каталогах, прежде чем' rm -fr /new/place
' мог закончиться. Без -depth
опция, эти cpio
перестала бы работать команда. Я только повторно помнил это, когда я пошел, чтобы сделать очистку - заключенная в кавычки формула то, что автоматическая мне (главным образом на основании многих повторений за многие годы).]
Важное различие находится в природе двух видов архивов.
файлы TAR немного больше, чем конкатенация содержания файла с некоторыми заголовками, в то время как gzip и bzip2 являются потоковыми компрессорами, которые, в tarballs, применяются к целой конкатенации.
zip-файлы являются конкатенацией индивидуально сжатых файлов с некоторыми заголовками. На самом деле ВЫКАЧИВАТЬ алгоритм используется и zip и gzip, и с соответствующей двоичной корректировкой, Вы могли взять полезную нагрузку gzip потока и поместить ее в zip-файл с соответствующим заголовком и словарными статьями.
Это означает, что два различных типа архивирования имеют различные компромиссы. Для большого количества маленьких файлов TAR, сопровождаемый потоковым компрессором, будет обычно приводить к более высокой степени сжатия, чем ZIP, потому что потоковый компрессор будет иметь больше данных, чтобы создать его частоты словаря из, и таким образом быть в состоянии отжать больше избыточной информации. С другой стороны, (сохранение длины файла) ошибка в zip-файле только повредит те файлы, сжатые данные которых были затронуты. Обычно, потоковые компрессоры не могут обоснованно восстановиться с ошибочной середины реки. Таким образом zip-файлы более эластичны к повреждению, поскольку часть архива все еще будет доступна.
По той же причине, по которой пользователи Mac любят образы дисков: это действительно удобный способ архивировать материал, а затем передавать его вверх- / загрузить или отправить по электронной почте и т. д.
И имхо проще в использовании и портативнее, чем zip.
В дни, когда я был в Altos-XENIX (1982), мы начали использовать tar (ленточный архиватор) для извлечения файлов с дискет 5 1/4 или потоковой ленты, а также копирования на эти носители. Его функциональность очень похожа на команды BACKUP.EXE и RESTORE.EXE в DOS 5.0 и 6.22 в качестве дополнений, что позволяет вам охватить несколько носителей, если они не могут поместиться только на одном. Недостатком было то, что если у одного из нескольких носителей возникали проблемы, все это было бесполезно. tar и dd происходят из UNIX SYstem III и оставались утилитой стандартного выпуска для UNIX-подобных ОС, вероятно, по причинам обратной совместимости.