SCROLL
Среднее время на прочтение: 2 мин.

Как работать с архиватором tar в Linux

tar — это утилита в Linux, которая является мощным инструментом для создания и управления архивами в Linux. Она поддерживает различные форматы сжатия, такие как gzip, bzip2 и xz, и может быть использована как для создания архивов, так и для их распаковки.

Синтаксис команды

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

tar [опции] [архив] [файлы/каталоги]

Где:

  • опции — это параметры, которые определяют действия с архивом.
  • архив — имя файла архива, в который будут сохраняться данные или из которого будут извлекаться.
  • файлы/каталоги — список файлов или каталогов, которые нужно добавить в архив или распаковать.

Описание ключей

Вот некоторые из основных ключей, которые используются в tar:

  • -c : Создание нового архива.
  • -x : Извлечение данных из архива.
  • -f : Указывает имя архива (обязательно должно идти после указания команды -c или -x).
  • -v : Вывод подробной информации о процессе работы.
  • -z : Сжатие архива с использованием gzip (для создания файлов формата .tar.gz, .tgz).
  • -j : Сжатие архива с использованием bzip2 (для создания файлов формата .tar.bz2).
  • -J : Сжатие архива с использованием xz (для создания файлов формата .tar.xz).
  • -C : Извлечение или создание архива в указанный каталог.

Форматы архивов

  • .tar : Стандартный архив без сжатия.
  • .tar.gz или .tgz : Архив с сжатием с помощью gzip.
  • .tar.bz2 : Архив с сжатием с помощью bzip2.
  • .tar.xz : Архив с сжатием с помощью xz.
  • .tar.gzip : Архив с сжатием с помощью gzip или .tar.gz.

Для работы с форматами сжатия tar.gz, .tgz, .tar.bz2 и .tar.xz нужно иметь соответствующие утилиты, такие как gzip, bzip2 и xz, установленные в системе.

Примеры создания архивов

Создание обычного архива .tar:

Для создания архива без сжатия используем команду:

tar -cvf archive.tar file1 file2 directory

Где:

  • -c : создание архива.
  • -v : вывод списка файлов в процессе.
  • -f : имя архива archive.tar.

Создание архива с сжатием gzip (.tar.gz или .tgz):

Чтобы создать сжатый архив с использованием gzip, используйте ключ -z:

tar -czvf archive.tar.gz file1 file2 directory

Для расширения .tgz можно использовать тот же синтаксис:

tar -czvf archive.tgz file1 file2 directory

Создание архива с сжатием bzip2 (.tar.bz2):

Чтобы создать архив с сжатием с помощью bzip2, используем ключ -j:

tar -cjvf archive.tar.bz2 file1 file2 directory

Создание архива с сжатием xz (.tar.xz):

Для создания архива с сжатием xz, используем ключ -J:

tar -cJvf archive.tar.xz file1 file2 directory

Примеры распаковки архивов

Распаковка обычного архива .tar:

Чтобы распаковать архив без сжатия, используем команду:

tar -xvf archive.tar

Распаковка архива с сжатием gzip (.tar.gz или .tgz):

Для распаковки архивов с сжатием gzip:

tar -xzvf archive.tar.gz

Либо для .tgz:

tar -xzvf archive.tgz

Распаковка архива с сжатием bzip2 (.tar.bz2):

Для распаковки архива с сжатием bzip2:

tar -xjvf archive.tar.bz2

Распаковка архива с сжатием xz (.tar.xz):

Для распаковки архива с сжатием xz:

tar -xJvf archive.tar.xz

Дополнительно

Распаковка без вложенной папки

Иногда при распаковке архива в директории может быть создана дополнительная вложенная папка. Чтобы избежать этого и распаковать файлы прямо в текущую директорию, можно использовать опцию --strip-components.

Например, если у вас есть архив archive.tar.gz, в котором содержится папка folder/ с файлами, и вы хотите распаковать файлы из этой папки без создания самой папки folder, выполните команду:

tar -xzvf archive.tar.gz --strip-components=1

В этом случае будет извлечено содержимое папки folder, но сама папка folder не будет создана.

Указание конкретного файла или каталога для распаковки

Если архив содержит несколько файлов и/или директорий, и вам нужно извлечь только конкретные файлы или папки, это можно сделать, указав их имена после команды распаковки.

Например, чтобы извлечь только файл file1.txt из архива archive.tar.gz, используйте команду:

tar -xzvf archive.tar.gz file1.txt

Для извлечения каталога folder из архива, выполните:

tar -xzvf archive.tar.gz folder/

Это позволит распаковать только указанные файлы или каталоги, игнорируя все остальные.

Работа с архивами, разбитыми на части

Архивы можно разбивать на несколько частей для удобства их хранения и передачи. Например, архив можно разбить с помощью команды split:

tar -cvf - directory | split -b 100M - archive.tar.part

В этом примере архив будет разбит на части по 100 МБ. Каждая часть будет иметь имя, начинающееся с archive.tar.part (например, archive.tar.partaa, archive.tar.partab и так далее).

Чтобы распаковать такой архив, сначала нужно объединить все части с помощью команды cat, а затем передать объединённый файл в tar:

cat archive.tar.part* | tar -xvf -

Эта команда объединит все части архива и распакует их.

Если архив был разбит на несколько частей и используется формат с сжатием (например, .tar.gz), то после объединения частей можно выполнить распаковку с сжатием, используя:

cat archive.tar.part* | tar -xzvf -

Для работы с архивами, разбитыми на части, также важно убедиться, что все части архива находятся в одной директории, иначе процесс объединения может завершиться с ошибкой.

 

ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОДДЕРЖИ АВТОРА ДОНАТОМ

Обсуждение

0 комментариев

Нет комментариев.