В чем разница со всеми различными типами .tar-архивов?

Я нашел решение. На самом деле все довольно просто. Мне нужно сначала сделать обновление программного обеспечения (поскольку это новая установка)

sudo apt-get update && sudo apt-get upgrade # Update software
sudo apt-get install libsqlite3-dev # Install packages
1
задан 28 November 2013 в 00:41

1 ответ

В дополнение к ответу @Lekensteyn, я бы хотел добавить, что это поведение основано на том, чтобы сделать что-то одно и сделать это хорошо. tar программа знает, как поместить несколько файлов в один поток (с помощью ), gzip знает, как сжать один файл (добавив расширение .gz) *. Комбинируя эти инструменты, вы можете создать команду, которая сжимает несколько файлов в один файл .tag.gz.

Этот подход очень гибкий - вы можете комбинировать несколько стандартных команд Unix, чтобы делать всевозможные вещи. Например, если вы пишете лучшую программу для сжатия файлов, вам не нужно изменять tar, чтобы позволить ей создавать файлы .tar.mymegazip - вместо этого вы просто выгружаете tar в ваш компрессор. [!d2 ]

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

Сравнить это команда zip, которая не появилась в Unix, - она ​​имеет встроенные инструменты для сжатия целых каталогов, шифрования файлов, разделения архива на меньшие zip-файлы и т. д.

(footnote) - да, tar может самостоятельно использовать файлы gzip или bzip с помощью переключателей -z и -j, они были добавлены для удобства, а GNU tar фактически порождает gzip или bzip2 в качестве нового процесса .

8
ответ дан 24 May 2018 в 14:48
  • 1
    Пример: команды tar c dir/ | gzip > dir.tar.gz и tar czf dir.tar.gz dir/ выполняют одно и то же. Пример, когда tar объединяется с SSH и tar (снова): tar cz Documents/ | ssh user@host 'tar xz (эквивалент rsync будет: rsync -a Documents user@host:) – Lekensteyn 5 December 2013 в 21:36

Другие вопросы по тегам:

Похожие вопросы: