Как распаковать архив 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.
В отличии от операционных систем семейства 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 архивов (очень важно не написать "/" в начале пути к директории в архиве):
Читайте также: