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