Утилита tar: создание, сжатие и передача архивов

Утилита tar — ваш главный помощник в Linux. Узнайте, как легко архивировать файлы и директории, экономя место и время. Раскрываем все секреты!

Бесплатная консультация юриста

+7 (800) 301-07-30

Реклама jurik.ru

Утилита tar (от англ. Tape ARchive, ленточный архив) — это один из важнейших и наиболее часто используемых инструментов в арсенале системного администратора Linux. Команда tar создает файлы tar путем преобразования группы файлов или целых директорий в единый архивный файл. Изначально утилита создавалась для записи данных на магнитные ленты‚ но сегодня она является стандартом де-факто для упаковки и распространения файлов в UNIX-подобных системах.

В этой статье мы подробно разберем‚ как сделать tar архив‚ какие ключи используются для сжатия‚ и как передавать архивы напрямую по сети.

Основы синтаксиса команды tar

Синтаксис команды выглядит следующим образом:

tar -ключи название_архива путь_что_запаковать

Утилита tar обладает огромным количеством функций‚ но для повседневной работы достаточно запомнить несколько базовых параметров:

  • -c‚ —create, создает новый архив и записывает в него файлы.
  • -f — использовать файл (обязательно указываем‚ так как в большей степени работаем именно с файлами‚ а не с потоками или устройствами);
  • -v — verbose режим‚ то есть с выводом на экран процесса (очень удобно для наблюдения за ходом работы‚ но в скриптах можно упустить).
  • -x — извлечь файлы из архива (распаковка).
  • -t — отобразить список файлов‚ включенных в архив‚ без их распаковки.
  • -u — добавить уже существующий архив к другому.

Создание простейшего архива (без сжатия)

Параметр cf отвечает за создание архива filename.tar‚ в который войдут указанные файлы. Вместо файлов могут быть указаны и директории. Так и создается простейший архив без сжатия (так называемый «тарбол»).

tar -cvf file.tar /full/path — создать .tar

В этом примере директория /full/path будет упакована в файл file.tar.

Сжатие архивов: gzip и bzip2

Поскольку сам по себе tar не сжимает данные‚ а лишь объединяет файлы в один‚ для уменьшения размера архива используются дополнительные компрессоры. Для использования каждого из них применяется отдельный набор параметров.

Сжатие gzip (.tar.gz)

Для использования сжатия не нужно запускать что-либо еще‚ достаточно указать tar‚ каким архиватором следует сжать архив. Ключ -z сжимает архив в gzip. Для начала файлы архивируются с помощью tar‚ затем компрессируются через gzip. В результате файл на выходе будет иметь двойное расширение tar.gz (или просто tgz).

tar -czvf file.tar.gz /full/path, создать .tar.gz (архив)

Пример из реальной практики: в данном примере будет создан архив archive.tar.gz домашней директории пользователя (/home/dmosk):

tar -czvf archive.tar.gz /home/dmosk

Сжатие bzip2 (.tar.bz2)

Метод bzip2 обеспечивает лучшую степень сжатия‚ чем gzip‚ но требует больше процессорного времени. Для его использования применяется ключ -j.

tar -cjvf file.tar.bz2 /full/path — создать .tar.bz2

Распаковка TAR-архивов

Для извлечения файлов из созданного архива используется параметр -xvf. Если архив сжат‚ необходимо также указать соответствующий ключ сжатия (z для gzip‚ j для bzip2).

tar параметр -xvf название_архива параметр -C /путь_к_папке

Ключ -C позволяет указать директорию‚ в которую будут распакованы файлы. Если вы хотите получить информацию о всех возможностях TAR‚ воспользуйтесь командой man tar в терминале.

Продвинутые приемы: передача архива по сети

Одной из мощнейших возможностей tar является способность передавать поток данных напрямую в другую программу‚ например‚ через SSH. Это позволяет создавать архив на одном сервере и сразу же сохранять его на удаленном сервере‚ не занимая место на локальном диске.

Альтернативный вариант прямой передачи:

tar -cz /foo/bar | ssh somehost.foo.com «cat > backup.tar.gz»

Утилита tar является фундаментальным инструментом для администрирования систем Linux (Ubuntu‚ Debian‚ CentOS и др.). Понимание того‚ как работает архивация и какие ключи отвечают за сжатие‚ позволит вам эффективно управлять бэкапами и переносить данные. В этой статье мы рассмотрели базовые команды‚ однако tar обладает еще большим функционалом‚ который вы можете изучить самостоятельно.