Линукс разархивировать архив tar gz

Как распаковать tar.gz архив в Linux?

Чтобы распаковать tar.gz архив в текущую директорию нужно выполнить команду:

Другие вопросы и ответы

Категории вопросов:

Форум
по Linux

Руководство
по Ubuntu

Аналоги программ
Windows vs Linux

Новое в галерее

Комментарии

Постоянная ссылка на комментарий

Постоянная ссылка на комментарий Родительский комментарий Василий

Постоянная ссылка на комментарий

Постоянная ссылка на комментарий Родительский комментарий Пингвинус

Постоянная ссылка на комментарий Родительский комментарий Helper

Постоянная ссылка на комментарий

Постоянная ссылка на комментарий

Постоянная ссылка на комментарий

Как распаковать на дебиане
test.tar.gz.001
test.tar.gz.002
test.tar.gz.003
test.tar.gz.004
test.tar.gz.005

Постоянная ссылка на комментарий Родительский комментарий Владимир

Постоянная ссылка на комментарий

Постоянная ссылка на комментарий Родительский комментарий qwe123

Постоянная ссылка на комментарий

Постоянная ссылка на комментарий

Постоянная ссылка на комментарий

Постоянная ссылка на комментарий

Постоянная ссылка на комментарий

Постоянная ссылка на комментарий

Постоянная ссылка на комментарий

Постоянная ссылка на комментарий

Постоянная ссылка на комментарий

Постоянная ссылка на комментарий

Постоянная ссылка на комментарий

При разархивации выдаёт ошибку:
gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now
Что делать?

Постоянная ссылка на комментарий Родительский комментарий cheloveg

Постоянная ссылка на комментарий

Постоянная ссылка на комментарий Родительский комментарий Макс

Ели вы не можете его распаковать, то явно у вас винда, так как распаковывать tar архивы все пингвины умеют изначально!
Ну если вы из неудачных, то 7-Zip можно бесплатно скачать тут:
https://www.7-zip.org/

Постоянная ссылка на комментарий

Постоянная ссылка на комментарий Родительский комментарий

Если упаковано tar, а потом зажато gzip — см. *.tar.gz — тогда tar для распаковки сначала передает архив gzip, а потом сам раскручивает уже собственно tar. Бывают и такие архивы — *.tar.bz2, тогда в опциях tar указывают -xvfj

Читайте также:  Linux 32bit on 64bit

Постоянная ссылка на комментарий Родительский комментарий NadyBear

С -xvf он как-то сам определяет куда передавать, gz, bz2 или xz, поэтому и спросил. Видимо это для каких-то древних дистрибутивов? У меня по крайней мере всегда с -xvf работало.

Постоянная ссылка на комментарий Родительский комментарий

Источник

Использование tar в Linux и FreeBSD для работы с архивами

Обновлено

Обновлено: 14.04.2023 Опубликовано: 18.11.2016

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

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

Рассмотрим общий синтаксис для создания и распаковки архивов.

Создать

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

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

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

Распаковать

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

Форматы

Утилита tar позволяет работать с архивами различных форматов. Рассмотрим их кратко.

gz

tar -cf archive.tar.gz /files

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

bz2

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

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

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

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

gzip

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

tgz

TGZ — tar-архив, сжатый с помощью утилиты gzip. По сути, это тот же tar.gz, и работа с ним ведется такими же командами. Рассмотрим примеры работы с данным форматом.

Для создания архива tgz выполняем:

xz

Это формат сжатия данных с помощью алгоритма LZMA. Для работы с ним устанавливаем:

Теперь можно пользоваться.

tar -cpJf archive.tar.xz /home/user

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

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

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

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

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

Ключ Описание
—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.

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

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 пропустит одну вложенную папку внутри архива.

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

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

Читайте также:  To delete history in linux

Рассмотрим пример. Напомним, что можно посмотреть содержимое архива с помощью опции t:

Теперь можно распаковать архив:

tar -zxf /backup/samba.tar.gz mail

* предположим, что внутри архива samba.tar.gz есть что-то и каталог mail. Извлечем мы только последний.

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

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

tar —exclude=’sess_*’ -czvf archive.tar.gz /wwwsite

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

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

tar —exclude=’/data/recycle’ —exclude=’*.tmp’ -zcf /backup/samba/2021-08-29.tar.gz /data/

* в данном примере мы исключим папку 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 из отдельных файлов с последующим его архивированием

Мы можем собрать файл tar, добавляя по очереди в него файлы, после чего создать сжатый архив. Предположим, у нас 3 файла: file1, file2, file3.

Сначала создадим tar-файл с первым файлом внутри:

tar -cf ./my_archive.tar ./file1

Следующими двумя командами мы добавим в архив файлы file2 и file3:

tar -rf ./my_archive.tar ./file2

tar -rf ./my_archive.tar ./file3

Сожмем содержимое tar-файла:

ZIP

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

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

zip -r archive.zip /home/dmosk

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

Windows

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

Источник

Оцените статью
Adblock
detector