Отличия
Казалось бы, что в любой операционной системе методы архивирования одинаковы, но это далеко не так. Так сложилось, что для пользователей windows и mac норма архивировать в rar или zip, но опытные пользователи unix/linux используют исключительно методы архивации tar или gzip. Конечно, и windows , и Mac пользователи могут использовать tar/gzip (например, при упаковке исходников), но все-таки такие форматы больше распространены для linux пользователей. Именно в tar/gzip распространяется практически все программное обеспечения (для ручной компиляции) под linux. Так что давайте научимся с ними работать.
О tar и gzip
Формат tar используется для создания архива, то есть для хранения нескольких файлов в одном файле. Важно знать, что сам по себе tar не сжимает файлы, а просто создает архив который по размеру схож с общим суммарным размеров упакованных в него файлов.
Gzip (расшифровывается как GNU zip) является утилитой для сжатия файлов. Интересно то, что gzip не может создать архив - утилита только сжимает один файл до меньших размеров.
Тут стоит вопрос: как же создать сжатый архив в linux? Ответ прост - использовать и tar и gzip одновременно. Смысл в том, что с начала создается архив с файлами при помощи утилиты tar, а потом этот архив сжимается утилитой gzip. В результате всех этих манипуляций мы должны получить файл с расширением tar.gz
О bzip2
bzip2 - это альтернатива gzip, обладавший лучшими показателями сжатия и скорости. В результате мы получим архив с расширением tar.bz2
Создаем архивы через gui
Теперь настало время узнать как же создавать архивы. Для начала рассмотрим самый легкий путь - создание архивов через gui (графический) интерфейс.
Графический доступ к утилитам tar и gzip/bzip2 скорее всего предоставлен в вашей среде рабочего стола - DE (KDE,GNOME,XFCE и т.п). Методы работы с графическими архиваторам отличаются очень слабо, поэтому мы рассмотрим процесс на примере архиватора Ark из KDE. Так же поставим себе задачу в виде упаковки исходного кода проекта sblog в архив tar.gz для последующего резервного копирования.
В современных DE архиватор интегрирован с файловым менеджером по этому для удобства будем работать с dolphin для выбора файлов к архивированию.
Первый шаг - выбрать файлы для архивирования
В нашем случае заходим в папку с проектом и нажимаем ctrl+a для выделения всех папок и файлов и в контекстном меню выбираем упаковать в архив.
Второй шаг - выбираем формат архива
После нажатия на "упаковать в архив" вы попадете в меню программы Ark в котором предоставляются все инструменты для управление архивированием. Главное - выбрать формат для создаваемого архива.
Для наших целей подойдет формат сжатый gzip (то есть tar.gz).
Последний шаг - выбираем имя и сохраняем
Архив готов для распространения!
Что бы убедиться в сохранности данных можно сделать md5 суммы и сверять их. Это обеспечит наивысшею теперь сохранности файлов при передаче по каналам, таким как интернет.
Создаем архивы через CLI
Через графический интерфейс удобно создавать архивы, но так же удобно (но труднее) это делать через командную строку.
Для создания архивов через командную строку применяются все те же команды tar,gzip и bzip2 с определенными флагами.
Создаем сжатый tar одной командой!
Казалось бы, что нужно вручную вызвать tar, а потом gzip и так оно и есть. Однако, для удобства есть набор флагов у команды tar, в частности прямо с вызовом tar можно применить сжатие gzip добавив опцию -z.
Давайте опять рассмотрим наш пример, но теперь будем архивировать через терминал.
Первый шаг - переход в нужную папку
cd www/sblog
Второй шаг - задаем команду для создания архива
tar -zcvf sblog.tar.gz *
В результате получаем сжатый архив sblog.tar.gz
Использование bzip
Если вы хотите использовать bzip2 совместно с tar используйте следующий вызов:
tar -jcvf sblog.tar.bz2 *
В результате получаем сжатый архив sblog.tar.bz2
Общий вид вызова команды tar:
tar -cf имя_будущего_архива файл(ы)_для_упаковки
Опции -c и -f означают, соответственно --create и --file, т.е создать файл.
Распаковка файлов
Для распаковки архива используется та же команда, только с флагом --extarct:
tar -zxvf путь_к_архиву
В случае с bzip2:
tar -jxvf путь_к_архиву
Получение информации о файлах в архиве
Перед распаковкой архива часто нужно узнать что находится внутри.
В графической среде можно просто открыть архив и он запустится в утилите для архивирования который покажет все файлы в архиве.
В командной строке нужно использовать следующий вызов команды tar:
tar -svtf путь_к_архиву
В случае с bzip2:
tar -jvtf путь_к_архиву
Смотреть также:
Изучаем командную строку linux: навигация по файлам.
короткие суффиксы:
.tgz .tbz и .txz (для .tar.xz -- современный lzma)
автоматическое определение фильтра:
опция -a и требумый фильтр (-z -j -J) определяется по имени файла.
для распаковки можно даже -a не указывать -- автодетект работает всегда.