Архивирование в linux: базовые навыки работы с tar и gzip/bzip2


Дата: 15 мая 2010





Отличия
Казалось бы, что в любой операционной системе методы архивирования одинаковы, но это далеко не так. Так сложилось, что для пользователей 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: навигация по файлам.

Комментарии:
Автор: koct9i,   дата: 16 мая 2010   15:43:32
короткие суффиксы:
.tgz .tbz и .txz (для .tar.xz -- современный lzma)

автоматическое определение фильтра:
опция -a и требумый фильтр (-z -j -J) определяется по имени файла.
для распаковки можно даже -a не указывать -- автодетект работает всегда.
Автор: Илья,   дата: 28 мая 2010   13:13:36
Спасибо, помогло в работе
Я с линухом на Вы, а тут припёрло:)
Автор: Minoru,   дата: 01 июня 2010   21:48:47
Я, кстати, в своё время написал софтинку, позволяющую не запоминать ключи к tar. Называется EasyPK, есть маны и README. Если кому интересно, сорцы можно найти на github'е: http://github.com/Minoru/EasyPK




 
Добавить комментарий:
Имя: *
e-mail:
Комментарий: *
Введите число 53: *


Архив статей:
Май 2017
Март 2017
Апрель 2016
Март 2016
Октябрь 2013
Сентябрь 2013
Май 2013
Март 2013
Ноябрь 2012
Июль 2012
Июнь 2012
Апрель 2012
Март 2012
Февраль 2012
Апрель 2011
Март 2011
Февраль 2011
Январь 2011
Декабрь 2010
Ноябрь 2010
Октябрь 2010
Сентябрь 2010
Август 2010
Июль 2010
Июнь 2010
Май 2010
Апрель 2010
Март 2010

Случайные:
Улучшения в linux 2.6.36 для пользователей Lenovo s10-3t

Linuxnow.ru: Планы на будущее

Виртуальный планетарий Stellarium: обзор новых возможностей

Возврат денег за OEM версии Windows

Настройка GRUB2

Gnome Do: быстрый запуск программ с помощью клавиатуры



master-notebook.ru

Коллеги:    все
 Linux для всех

Наши баннеры:
linuxnow.ru
linuxnow.ru
Установить баннер