Разархивировать tar gz linux

Обновлено: 07.07.2024

Утилита командной строки tar используется для работы с архивами в операционных системах на базе UNIX. С ее помощью можно архивировать данные и оптимизировать использование дискового пространства.

Создание и распаковка архивов

Создать

Создание выполняется с ключом c. Синтаксис следующий:

tar -c<опции> <новый архивный файл> <что сжимаем>

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

* в данном примере будет создан архив archive.tar.gz домашней директории пользователя (/home/dmosk)
** где z — сжать архив в gzip (без этого параметра, tar не сжимает, а создает так называемый тарбол); c — ключ на создание архива; v — verbose режим, то есть с выводом на экран процесса (очень удобно для наблюдением за ходом работы, но в скриптах можно упустить); f — использовать файл (обязательно указываем, так как в большей степени работаем именно с файлами).

Распаковать

Распаковка выполняется с ключом x с синтаксисом:

tar -x<опции> <архивный файл>

tar -xvf archive.tar.gz

Примеры

Распаковка .gz файла:

tar -xvf archive.tar.gz

* при возникновении ошибки This does not look like a tar archive, можно воспользоваться командой gzip -d archive.tar.gz.

tar -xvjf archive.tar.bz2

* ключ j отвечает за работу с bz2.

Если система ругается на bzip2, значит нужно его установить:

yum install bzip2

apt-get install bzip2

pkg install bzip2

* соответственно, для CentOS (RPM based), Ubuntu (deb based), FreeBSD (BSD based).

Если видим ошибку tar: Unrecognized archive format, воспользуемся следующей командой:

bzip2 -d archive.tar.bz2

tar -xvzf archive.tar.gzip

* ключ z отвечает за работу с gzip.

Распаковывается, как gzip:

tar -xvzf archive.tgz

Распаковать в определенную папку

tar -C /home/user -xvf archive.tar.gz

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

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

Такой способ можно использовать для распаковки в заранее подготовленный каталог. Будет некий эффект переименовывания каталога или аналог «Распаковать здесь»:

tar -C /home/admin/mytar -xvf admin.tar.gz --strip-components 1

* каталог /home/admin/mytar заранее должен быть создан; --strip-components 1 пропустит одну вложенную папку внутри архива.

Исключение файлов по маске

Если необходимо пропустить некоторые файлы, вводим команду с ключом --exclude:

* в данном примере мы создадим архив archive.tar.gz, в котором не будет файлов, начинающихся на sess_.

Также можно исключить несколько файлов или папок, добавляя несколько опций exclude:

* в данном примере мы исключим папку recycle и файлы, которые заканчиваются на .tmp

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

Разбить архив на части может понадобиться по разным причинам — нехватка места на носителе, необходимость отправки файлов по почте и так далее.

Чтобы создать архив, разбитый на части, вводим команду:

tar -zcvf - /root | split -b 100M - root_home.tar.gz

* данная команда создаст архив каталога /root и разобьет его на части по 100 Мб.

В итоге мы получим, примерно, такую картину:

root_home.tar.gzaa root_home.tar.gzac root_home.tar.gzae
root_home.tar.gzag root_home.tar.gzai root_home.tar.gzab
root_home.tar.gzad root_home.tar.gzaf root_home.tar.gzah

Чтобы собрать архив и восстановить его, вводим команду:

cat root_home.tar.gz* | tar -zxv

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

Команды для действия

Ключ Описание
-A Добавление файлов в архив.
-c Создание нового архивного файла.
-d Показать отличающиеся данные между каталогом-исходником и содержимым архива.
--delete Удалить файлы внутри архива.
-r Добавить файлы в конец архива.
-t Показать содержимое архива.
-u Добавить файлы, которых нет в архиве.
-x Извлечь файлы из архива.

* нельзя использовать несколько вышеперечисленных ключей в одной команде.

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

Ключ Описание
--atime-preserve Оставить прежнюю метку времени доступа для файла.
-b N Задать размер блока N x 512.
-C Смена каталога. По умолчанию, используется тот, в котором мы находимся.
--checkpoint Показать имена папок при чтении архивного файла.
-G Использование старого формата инкрементального резервирования при отображении или извлечения.
-g Использование нового формата инкрементального резервирования при отображении или извлечения.
-h Не дублировать символьные ссылки. Только файлы, на которые указывают эти симлинки.
-i Игнорировать блоки нулей.
-j Использование bzip2.
--ignore-failed-read Игнорировать не читаемые файлы.
-k При распаковке, существующие файлы не заменяются соответствующими файлами из архива.
-L N Смена магнитной ленты после N*1024 байт.
-m При извлечении игнорировать время модификации объекта.
-M Многотомные архивы.
-N DATE Сохранять только более новые файлы относительно DATE
-O Направление извлекаемого на стандартный вывод.
-p Извлечение защищенной информации.
-P Не отбрасывает начальный слэш (/) из имен.
-s Сортировка файлов при извлечении.
--preserve Аналогично -ps
--remove-files Удалить исходные файлы после добавления в архив.
--same-owner Сохранить владельца при извлечении.
--totals Вывод байт при создании архива.
-v Протоколирование действий — отображение списка объектов, над которыми происходит действие.
-V NAME Создание архива на томе с меткой NAME.
--version Показать версию tar.
-w Требовать подтверждения для каждого действия.
-W Проверка архива после записи.
--exclude FILE Исключить файл FILE.
-X FILE Исключить файлы FILE.
-Z Фильтрует архив с помощью compress.
-z Использование gzip.

* актуальный список опций можно получить командой man tar.

Tar не работает с zip-архивами. В системах UNIX для этого используем утилиты zip и unzip. Для начала, ставим нужные пакеты:

yum install zip unzip

apt-get install zip unzip

pkg install zip unzip

* соответственно, для RPM based, deb based, BSD based.

zip -r archive.zip /home/dmosk

* создает архив каталога /home/dmosk в файл archive.zip.

Windows

В системе на базе Windows встроенными средствами можно распаковать только ZIP-архивы. Для работы с разными архивами рекомендуется поставить архиватор, например 7-Zip.

Если вы путешествуете по миру открытого исходного кода, скорее всего, вы регулярно сталкиваетесь с файлами .tar.gz . Пакеты с открытым исходным кодом обычно доступны для загрузки в форматах .tar.gz и .zip.

Команда tar используется для создания архивов tar путем преобразования группы файлов в архив. Он поддерживает широкий спектр программ сжатия, таких как gzip, bzip2, lzip, lzma, lzop, xz и compress. Изначально Tar был разработан для создания архивов для хранения файлов на магнитной ленте, поэтому он получил название « T ape AR chive».

Короче говоря, файл с расширением .tar.gz представляет собой архив .tar, сжатый с помощью gzip.

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

В этом руководстве мы покажем вам, как распаковать (или распаковать) архивы tar.gz и tgz .

Извлечение файла tar.gz

В большинстве дистрибутивов Linux и macOS по умолчанию предустановлена команда tar .

Чтобы извлечь файл tar.gz, используйте параметр --extract ( -x ) и укажите имя файла архива после параметра f :

Команда tar автоматически определит тип сжатия и распакует архив. Эту же команду можно использовать для извлечения архивов tar, сжатых с помощью других алгоритмов, таких как .tar.bz2 .

Если вы пользователь рабочего стола и командная строка вам не подходит, вы можете использовать файловый менеджер. Чтобы распаковать (разархивировать) файл tar.gz, просто щелкните правой кнопкой мыши файл, который вы хотите извлечь, и выберите «Извлечь». Пользователям Windows потребуется инструмент под названием 7zip для извлечения файлов tar.gz.

Параметр -v сделает команду tar более видимой и напечатает имена файлов, извлекаемых на терминале.

По умолчанию tar извлекает содержимое архива в текущий рабочий каталог . Используйте --directory ( -C ) для извлечения архивных файлов в определенный каталог:

Например, чтобы извлечь содержимое архива в /home/linuxize/files , вы можете использовать:

Извлечение определенных файлов из файла tar.gz

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

При извлечении файлов вы должны --list их точные имена, включая путь, как напечатано с помощью --list ( -t ).

Извлечение одного или нескольких каталогов из архива аналогично извлечению файлов:

Вы также можете извлекать файлы из файла tar.gz на основе шаблона с подстановочными знаками, используя параметр --wildcards и цитируя шаблон, чтобы оболочка не интерпретировала его.

Например, чтобы извлечь файлы, имена которых заканчиваются на .js (файлы Javascript), вы должны использовать:

Извлечение файла tar.gz из stdin

В следующем примере мы загружаем исходники Blender с помощью команды wget и передаем его вывод в команду tar :

Если вы не укажете вариант декомпрессии, tar укажет, какой вариант вам следует использовать:

Вывод файла tar.gz

Чтобы --list список содержимого файла tar.gz, используйте параметр --list ( -t ):

Результат будет выглядеть примерно так:

Если вы добавите параметр --verbose ( -v ), tar выведет дополнительную информацию, такую как владелец, размер файла, временная метка и т. Д.

Команда tar и другие методы распаковки в Linux

По умолчанию в системах Unix/Linux включен встроенный архиватор tar, позволяющий запаковывать/распаковывать архив и выполнять много других операций с заархивированными файлами. В его функционал не входит компрессия, но он отлично работает с такими утилитами, как Gzip и BZip2 – с помощью них и выполняется сжатие файлов.

В сегодняшней статье мы подробно разберем основные функции команды tar, а также рассмотрим, как работать с архивами в Linux-системе.

Tar: основные функции и синтаксис

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

Распаковка файлов тоже выполняется просто:

Основные опции:

  • -A, --concatenate – позволяет добавить уже существующий архив к другому;
  • -c, --create – создает новый архив и записывает в него файлы;
  • -d – расшифровывается как -diff или -delete, где первая команда проверяет различия между архивами, вторая – удаляет данных из архива;
  • -r, append – добавляет новые файлы в конец заархивированного документа;
  • -t, --list – разрешает посмотреть содержимое архива, формат аналогичен ls –l; если файлы не указаны, то выводит информацию обо всех файлах;
  • -u, --update – обновление файлов в созданном архиве с тем же наименованием;
  • -x, --extract – распаковывает файлы из заархивированного документа.

Мы также можем использовать особые параметры, относящиеся к каждой опции:

  • -c dir, --directory=DIR – перед тем как выполнить операцию, директория будет изменена на dir;
  • -f file, --file – выводит результат в file;
  • -p, --bzip2 – сохраняет все права доступа;
  • -v – расшифровывается как -verbose или -totals: выводит всю информацию о текущем процессе и показывает сведения об уже завершенном процессе.

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

  • -a, -auto-compress – выбирает программу для сжатия данных;
  • -I, -use-compress-program=PROG – позволяет фильтровать архив с помощью утилиты PROG, для которой требуется использование опции -d;
  • -j, -bzip2 – сжимает архив с помощью программы bzip2;
  • -J, -xz – сжимает архив с помощью программы XZ;
  • -Izip – сжимает архив с помощью программы Lzip;
  • -Izma – сжимает архив с помощью программы Izma;
  • -z, -gzip, -gunzip, -ungzip – сжимает архив с помощью программы GZIP;
  • -Z, -compress, -uncompress – использование компрессии.

У команды tar есть еще много возможностей – чтобы их посмотреть, достаточно в консольном окне ввести команду tar --help. О том, как воспользоваться наиболее важными опциями и поработать с архивацией данных, мы поговорим в следующем разделе.

Как воспользоваться архиватором tar

Для работы с архиватором будем использовать сборку Kali Linux. Данный алгоритм подойдет и для других версий Unix/Linux, поэтому можете просто следовать инструкциям, чтобы прийти к тому же результату.

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

Архивируем файлы

Чтобы добавить один или несколько файлов в архив через консольное окно, нам потребуется сначала прописать пути, чтобы система понимала, откуда брать файлы. Сделать это довольно просто: указываем в консоли путь до директории, в которой находятся файлы. В нашем случае это /home/kali/.

Как сменить директорию в консоли Kali Linux

Для архивации вводим команду типа:

Как заархивировать файл в Kali Linux

В результате будет создан архив в исходной папке – перейдем в нее и убедимся, что все прошло корректно:

Как архивировать файлы через консоль в Linux

Второй способ – ручное архивирование. Для этого выбираем файл, который нужно заархивировать, и кликаем по нему правой кнопкой мыши. В отобразившемся меню нажимаем на функцию создания архива. Далее нам потребуется указать название файла, задать ему расширение .tar и воспользоваться кнопкой архивирования файлов.

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

Как видите, создать tar-архив в Linux совсем не сложно. Если вам нужно заархивировать несколько документов через консоль, то просто пропишите их имена с использованием пробела.

Распаковываем tar-файлы

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

Как разархивировать файл в консоли линукса

Таким образом будут получены файлы, находящиеся в архиве. Также мы можем их достать и ручным способом – для этого достаточно кликнуть правой кнопкой мыши по файлу и нажать на «Извлечь здесь».

Как работать со сжатием файлов

Напоминаю, что tar не сжимает файлы, а только добавляет их в архив. Для уменьшения размера архивируемых файлов потребуется дополнительно воспользоваться такими утилитами, как bzip2 и gzip. Они хорошо взаимодействуют с tar, поэтому в консольном окне достаточно прописать несколько новых значений. В ручном режиме сжатие файлов выполняется с помощью расширения .tar.bz2 или .tar.gz.

Итак, для сжатия в bzip2 переходим через консоль в нужную директорию и прописываем следующую команду:

Как сжать файлы в Linux Kali

Чтобы использовать gzip, другую утилиту для сжатия, вводим следующее:

Как создать сжатый архив в Linux Kali

Для распаковки файлов такого типа используйте:

Ручной способ аналогичен созданию обычного архива, только необходимо указать расширение .tar.bz2 либо .tar.gz.

Как создать сжатый архив в Linux Kali

Распаковать файлы самостоятельно тоже просто – для этого нужно кликнуть правой кнопкой по архиву и выбрать «Извлечь здесь».

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

Мы можем посмотреть, что находится в архиве без его распаковки. В консоли для этого необходимо ввести команду такого типа:

Как посмотреть содержимое архива через консоль в Linux Kali

Обратите внимание, что под командой отобразилось название «document1» – это файл, находящийся в архиве. Если файлов несколько, то каждый будет прописан в новой строке.

Для просмотра архива без использования консоли достаточно кликнуть двойным щелчком мыши по архиву. После этого отобразится новое окно, в котором будет показан весь список файлов.

Заключение

Сегодня мы рассмотрели основные методы архивации, распаковки и сжатия файлов с помощью команды tar. Это простой инструмент, который отлично взаимодействует с утилитами сжатия bzip2 и gzip. Надеюсь, что теперь вам будет легко работать с архивами в системе Linux. Спасибо за внимание!

Примеры Использования Команды Tar в Linux

Tar — одна из наиболее широко используемых команд Linux для сжатия. Использование tar даёт много преимуществ, за что её и любят специалисты, имеющие дело с командной строкой Linux. Дальше мы поговорим об этих преимуществах, а также рассмотрим основные примеры использования утилиты.

В большинстве случаев результатом сжатия с использованием утилиты tar является файл с расширением .tar. Последующие сжатия выполняются с помощью gzip, в результате получаем файл .tar.gz.

С помощью tar вы можете сжимать и распаковывать файлы. Tar имеет много опций, но некоторые из них вам, возможно, придётся запомнить.

  • Tar довольно эффективно сжимает файлы, степень сжатия — 50%;
  • Значительно уменьшает размер упакованных файлов и папок;
  • Tar не изменяет свойства файлов и каталогов. Разрешения и другие функции остаются неизменными;
  • Tar доступна в большинстве версий Linux, в том числе и в более старых, а также в прошивке Android;
  • Быстро сжимает и разжимает содержимое;
  • Простая в использовании.

Теперь, когда мы разобрались с преимуществами tar, стоит ответить на ещё один вопрос: при каких сценариях используется эта утилита?

  • Если вы работаете в системах на базе Linux и вам нужно сжать файлы;
  • Вам нужно перенести огромную коллекцию файлов и папок с одного сервера на другой;
  • Нужно сделать резервную копию сайта, данных или чего-либо ещё;
  • Чтобы уменьшить использование места в вашей системе;
  • Для загрузки и скачивания папок.

Как использовать Tar в Linux

Давайте узнаем, какие основные операции вы можете выполнять с помощью tar. Но прежде чем мы начнём, вам нужно будет подключиться к вашему VPS-серверу по SSH. Вот руководство, которое вам поможет!

Создание файла .tar в Linux

Вы можете сжимать как файлы, так и папки. В обоих случаях в результате вы получите архив с расширением .tar. Пример создания такого архива:

Здесь /home/primerArhiva — это каталог, который необходимо сжать, в результате чего мы получим primerArhiva.tar.

В команде используются параметры –cvf, которые реализуют следующие модификации:

  • c – создает новый файл .tar;
  • v – выводит подробное описание процесса сжатия;
  • f – имя файла.

Создание файла .tar.gz в Linux

Если вы хотите добиться ещё большего сжатия, создайте архив .tar.gz. Вот пример:

Дополнительная опция z представляет сжатие gzip. Как вариант, вы также можете создать архив .tgz, похожий на tar.gz. Например:

Создание файла .tar.bz2 в Linux

Файлы архива .bz2 имеют ещё больший уровень сжатия, чем файлы, сжатые с gzip. Однако для сжатия и распаковки потребуется больше времени. Чтобы создать архив, вам нужно использовать опцию -j. Пример операции:

Похожие варианты сжатия — .tar.tbz и .tar.tb2. Например:

Как разархивировать файлы .tar в Linux

Команду tar также можно использовать для извлечения файлов. Следующая команда извлечет файлы в текущий каталог:

Если вы хотите распаковать файлы в другой каталог, используйте опцию -C. Например:

Аналогичную команду можно использовать для распаковки файлов .tar.gz:

.tar.bz2, .tar.tbz или .tar.tb2 файлы могут быть распакованы аналогично. Для этого введите следующую команду в командной строке:

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

После создания архива вы можете просмотреть его содержимое с помощью подобной команды:

Команда выведет полный список файлов с отметками времени и разрешениями. Используйте аналогичную команду для .tar.gz:

Такой вариант подходит и для файлов .tar.bz2:

Как извлечь только один файл из архива .tar

Вы можете извлечь необходимый вам файл, не распаковывая остальные файлы архива. Один из таких примеров показан ниже:

Здесь primer.sh — это тот единственный файл, который будет извлечён из primerArhiva.tar. В качестве альтернативы вы также можете использовать следующую команду:

Чтобы извлечь только один файл из .tar.gz, вы можете использовать команду, аналогичную показанной ниже:

Или аналогичную команду:

Чтобы извлечь один файл из .tar.bz2, воспользуйтесь командой:

Или аналогичную команду:

Как видите, команда tar имеет довольно гибкий синтаксис.

Как извлечь несколько файлов из архивов .tar

Если вы хотите извлечь несколько файлов, используйте следующий формат команды:

Соответственно для .tar.gz команда будет выглядеть так:

Для .tar.bz2:

Извлечь несколько файлов за критерием

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

Для .tar.gz введите:

Для .tar.bz2:

Как добавить файлы в архив .tar

Вы можете не только извлекать, но и добавлять выбранные файлы в существующий архив. Для этого мы будем использовать параметр -r, который означает добавление. Tar может добавлять как файлы, так и каталоги.

Ниже приведён пример, в котором мы добавляем primer.jpg в существующий файл primerArhiva.tar.

Мы также можем добавить каталог. В примере ниже каталог image_dir был добавлен в primerArhiva.tar.

Вы не можете добавлять файлы или папки в архивы .tar.gz или .tar.bz2.

Как проверить архив .tar в Linux

Используя tar, вы также можете проверить целостность созданного архива. Вот один из способов, как это можно сделать:

Данная команда не применима к файлам .tar.gz или .tar.bz2.

Как проверить размер архива в Linux

Вы также можете проверить размер созданного архива. Размер будет указан в КБ (килобайтах).

Ниже приведены примеры команды с разными архивными файлами:

Итоги

Как видите, tar — действительно мощный инструмент, который должен знать каждый специалист, имеющий дело с терминалом Linux.

Мы надеемся, что эта статья помогла вам разобраться с особенностями использования tar в Linux! Вы также можете изучить подробную инструкцию по этой утилите, вызвав справку с помощью команды man tar. Увидимся в следующем руководстве!

Ольга уже около пяти лет работает менеджером в сфере IT. Написание технических заданий и инструкций — одна из её главных обязанностей. Её хобби — узнавать что-то новое и создавать интересные и полезные статьи о современных технологиях, веб-разработке, языках программирования и многом другом.

Читайте также: