Как распаковать архив gz в linux

Обновлено: 08.07.2024

Большая часть файлов для Linux, которые скачиваются из Интернета, заархивированы в форматах tar, tar.gz, tar.bz2 и важно знать как их вытянуть. В этой статье показывается, как извлечь (распаковать) и разархивировать (untar) файлы и папки из картотек tar, tar.gz и tar.bz2 из командной строки в Linux. Также Вы узнаете, как просмотреть содержимое tar архива не распаковывая его и как вытянуть только отдельный файл или отдельно взятую папку. Сам по себе tar не является архиватором в обыкновенном понимании этого слова, т.к. он самостоятельно не использует сжатие.

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

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

В варианте с Linux VPS на базе OpenVZ и Xen для работы с архивами достаточно базовых компонентов системы, а только Tar, Gzip и Bzip2, которые при создании сжатого архива работают как единое целое, т.к. сам по себя архиватор Tar не предусматривает возможность сжатия данных. Для этой цели как раз и используется Gzip или Bzip2. Картотеки, созданные с применением Gzip, обычно имеют расширение .tar.gz, а при использовании Bzip2 — .tar.bz2.

В то же время, многие архиваторы (пример, Gzip или bzip2) не умеют сжимать несколько файлов, а работают только с одним файлом или входным потоком. Потому чаще всего эти программы используются вместе. tar создает несжатый архив, в который вмещаются выбранные файлы и каталоги, при этом сохраняя некоторые их атрибуты (такие как права доступа).

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

tar -xvzf archive.tar.gz

Для tar вовсе не непременен знак!

Распаковать tar файл:

Распаковать и разархивировать tar.gz файл:

tar -xvzf foo.tar.gz

Распаковать и разархивировать tar.bz2 файл:

tar -xvjf foo.tar.bz2

Творение tar-архива без сжатия в Linux

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

tar -cf filename.tar file1 file2 fileN

Метеопараметр —cf отвечает за создание архива filename.tar, в который войдут указанные файлы. Вместо файлов смогут быть указаны и директории.

Создание архива с использованием сжатия в Linux

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

Образчик сжатия Gzip:

tar -cvzf filename.tar.gz dir_name

В данном случае мы попытались запаковать папку dir_name в картотека filename.tar.gz. Из указанных параметров -z указывает на использование метода Gzip, а -v выводит результаты процесса творения архива с указанием упакованных файлов или папок.

Просмотр содержимого архива без распаковки в Linux

Для данных целей используется следующая команда:

tar -tf filename.tar.gz

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

Прочие возможности tar в Linux

tar предоставляет множество полезных возможностей. Например, возможно указать файлы и каталоги, которые не будут включены в архив, добавить файлы (именованная область данных на носителе информации) в имеющийся архив (1) учреждение или структурное подразделение организации, осуществляющее хранение, комплектование, учёт и использование архивных документов; 2) собрание письменных памятников (рукописей, писем и т), взять список объектов для запаковки из текстового файла и много что ещё. Во всем обилии опций как всегда поможет разобраться

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


Набиваю сайт полезными статьями. Некоторые люди забывают как можно распаковать тот или иной архив. Я расскажу как можно использовать различные инструменты для распаковки tar|gz|tgz|bz2|tbz2|zip|gz|rar|Z|7z архивов в Unix/Linux.

Распаковка [tar|gz|tgz|bz2|tbz2|zip|gz|rar|Z|7z] архивов в в Unix/Linux

Если архив был сжат с помощью GZIP или BZIP2, то следующие команды помогут вам при распаковки.

Распаковка tar архивов в Unix/Linux

Можно просмотреть архив и узнать содержимое:

Так же, можно извлечь указанный файл, предположим что необходимо достать some_my_archive.txt:

Вы можете указывать путь к любому файлу в любой папке:

Распаковка gz архивов в Unix/Linux

Чтобы распаковать, используйте:

Можно просмотреть архив (сжатый с помощью GZIP) и узнать содержимое:

Так же, можно извлечь указанный файл, предположим что необходимо достать some_my_archive.txt:

Вы можете указывать путь к любому файлу в любой папке:

Распаковка tgz архивов в Unix/Linux

Чтобы распаковать, используйте:

Распаковка bz2 архивов в Unix/Linux

Чтобы распаковать, используйте:

Можно просмотреть архив (сжатый с помощью BZIP2) и узнать содержимое:

Так же, можно извлечь указанный файл, предположим что необходимо достать some_my_archive.txt:

Вы можете указывать путь к любому файлу в любой папке:

Распаковка tbz2 архивов в Unix/Linux

Чтобы распаковать, используйте:

Если архив был сжат с помощью ZIP, GUNZIP, RAR, BUNZIP2, COMPRESS или 7Z, то следующие команды помогут вам при распаковки.

Распаковка zip архивов в Unix/Linux

Чтобы распаковать, используйте:

Распаковка gz архивов в Unix/Linux

Чтобы распаковать, используйте:

Распаковка rar архивов в Unix/Linux

Чтобы распаковать, используйте:

Распаковка bz2 архивов в Unix/Linux

Чтобы распаковать, используйте:

Распаковка Z архивов в Unix/Linux

Чтобы распаковать, используйте:

Распаковка 7z архивов в Unix/Linux

Чтобы распаковать, используйте:

Извлечение Архивов с помощью Shell Функции

Чтобы не запоминать какой ключ использовать при распаковки архивов, можно добавить функцию для этого. Открываем .bashrc или .zshrc на вашей ОС:

И в самый конец, прописываем:

Перезагружаем оболочку bashrc :

PS: Если используете zsh, то чтобы перезапустить ее. Закройте и откройте ваш терминал.

Использование довольно простое, например:

Запаковать архив с помощью Shell Функции

Открываем .bashrc или .zshrc на вашей ОС:

И в самый конец, прописываем:

Перезагружаем оболочку bashrc :

PS: Если используете zsh, то чтобы перезапустить ее. Закройте и откройте ваш терминал.

Использование довольно простое, например:

Добавить комментарий Отменить ответ

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Утилита командной строки 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.

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

В отличии от операционных систем семейства Windows, все операции в Linux'ах можно выполнить как в терминале (командной строке), так и в графическом интерфейсе, и распаковка архивов не является исключением. Ниже пойдет речь о том, как распаковывать различные архивы в Linux, используя только командную строку.

Распаковка архива 7z

Для распаковки 7z (7zip) архивов придется прибегнуть к использованию утилиты p7zip, которая по умолчанию обычно не включена в дистрибутивы Linux. Устанавливается она следующим образом:

Распаковывается архив командой:

Распаковка архива gz

Если нужно распаковать архив с расширением gz, то необходимо воспользоваться утилитой gunzip:

Распаковка архива rar

Весьма популярный, особенно на территории СНГ, формат rar распаковывается утилитой unrar, которую возможно придется сначала установить:

После чего можно ей можно будет воспользоваться:

Распаковка архива tar.bz2

Архив с расширением tar.bz2 можно распаковать вот так:

Распаковка архива tar.gz

Распаковать архив с расширением tar.gz можно так:

Распаковка архива tar.xz

Для распаковки архива с расширением tar.xz нужно использовать команду tar с параметрами -xf:

Распаковка архива zip

Если понадобилось распаковать zip архив, то для этого нужна утилита с названием unzip. Установить её можно следующей командой:

После чего распаковать zip архив можно следующей командой:

Была ли эта статья Вам полезна?
Что в статье не так? Пожалуйста, помогите нам её улучшить!

Комментарии к статье (5)

не работает от слова совсем.

Очень подробно. Если в статье есть неточности, то было бы куда правильней на них указать (конкретику), а не писать расплывчатые фразы.

Спасибо. Но это слишком тривиально и есть везде. Как распаковать из полного архива 1 папку с файлами в каждом случае н.п. /lib/modules/* ? Заранее признателен

Тип архива то какой? zip,rar,tar.

Для unzip это будет так:

Для tar архивов (очень важно не написать "/" в начале пути к директории в архиве):

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