Как работать с архиватором 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 -
Для работы с архивами, разбитыми на части, также важно убедиться, что все части архива находятся в одной директории, иначе процесс объединения может завершиться с ошибкой.
ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОДДЕРЖИ АВТОРА ДОНАТОМ
Обсуждение
Нет комментариев.