Создание и распаковка архивов .tar.gz в Linux

Эта статья предназначена для пользователей Linux-серверов и посвящена основам работы с архивами. Мы рассмотрим, как создавать архивы, упаковывать в них файлы и извлекать данные. В примерах используются виртуальные серверы.

Что такое Tar?

Tar (Tape Archive) — это формат архивации, предназначенный для объединения нескольких файлов и папок в один архивный файл.

Формат .tar имеет ряд преимуществ перед .zip для определённых задач. Основное отличие — в методе сжатия. Архив .zip сжимает каждый файл по отдельности, тогда как .tar сначала объединяет файлы в единый поток, а сжатие применяется ко всему архиву целиком. Таким образом, .zip — это набор сжатых файлов, а .tar — сжатый архив несжатых данных.

Архив .tar.gz — это файл в формате .tar, сжатый с помощью утилиты gzip. Именно поэтому к имени добавляется расширение .gz. Помимо gzip, могут использоваться и другие утилиты сжатия, что отражается в расширениях: .tar.bz2 (bzip2), .tar.xz (xz) и другие.

Если у вас еще нет виртуального сервера, его можно арендовать у проверенных провайдеров из нашей подборки надежных VPS серверов. Перейти

Работа с архивами .tar.gz в Linux

Для создания и распаковки архивов .tar.gz в Linux используется утилита tar.

Как создать архив в Linux

Полная форма команды для создания архива:

tar --create --gzip --verbose --totals --file test.tar.gz video.mp4

Ключи команды:

  • --create (-c) — создание архива.
  • --gzip (-z) — сжатие с помощью gzip.
  • --verbose (-v) — подробный вывод процесса.
  • --totals — вывод итоговой статистики.
  • --file (-f) — указание имени архива (обязательный параметр).

Эту же операцию можно выполнить сокращённой командой:

tar -czvf test.tar.gz video.mp4

Для архивации нескольких папок:

tar -czvf archive.tar.gz folder1 folder2

Как распаковать архив в Linux

Для извлечения файлов используется ключ --extract (-x):

tar --extract --verbose --totals --file test.tar.gz

Или в краткой форме:

tar -xvf test.tar.gz

Чтобы распаковать архив в конкретную директорию, укажите ключ -C (--directory):

tar -xf test.tar.gz -C /path/to/target/directory/

Как посмотреть содержимое архива в Linux

Для вывода списка файлов в архиве без распаковки используйте:

tar -tf archive.tgz

Как исключить файлы при распаковке в Linux

Ключ --exclude позволяет пропустить определённые файлы или каталоги:

tar --exclude='unwanted_file.txt' -xvf archive.tar.gz

Для исключения нескольких элементов можно добавить несколько ключей --exclude.

Как распаковать архив из сети напрямую в Linux

Архив можно распаковать сразу после загрузки, объединив команды wget и tar:

wget -c http://example.com/file.tgz -O - | tar -xz

Пояснение:

  • wget -c — продолжение загрузки при разрыве соединения.
  • -O - — вывод скачанного содержимого в стандартный поток.
  • tar -xz — распаковка данных, поступающих из потока.
Если у вас еще нет виртуального сервера, его можно арендовать у проверенных провайдеров из нашей подборки надежных VPS серверов. Перейти

Утилита GZIP

gzip — утилита для прямого сжатия файлов в Linux.

Сжатие файла:

gzip filename

Сжатие существующего .tar архива:

gzip -cv archive.tar > archive.tar.gz
  • -c — вывод результата в стандартный поток.
  • -v — отображение процесса.

Распаковка:

gzip -d archive.tar.gz

Рекурсивное сжатие всех файлов в директории:

gzip -rv directory/

Рекурсивная распаковка всех архивов в директории:

gzip -drv directory/
Если у вас еще нет виртуального сервера, его можно арендовать у проверенных провайдеров из нашей подборки надежных VPS серверов. Перейти