- Как распаковать tar bz2 xz gz архивы в Linux
- Распаковка tar
- Распаковка tar.bz2, tar.bzip2, tbz2, tb2, tbz
- Распаковка tar.xz, txz
- Распаковка tar.gz, tgz
- Распаковка tar.lzma
- Пояснение опций
- Распаковка в определенную директорию
- Заключение
- Смотрите также
- Новое в галерее
- Новые комментарии
- Комментарии
- Использование tar в Linux и FreeBSD для работы с архивами
- Создание и распаковка архивов
- Создать
- Распаковать
- Форматы
- gz
- bz2
- gzip
- tgz
- xz
- Описание ключей tar
- Команды для действия
- Дополнительные опции
- Примеры
- Распаковать в определенную папку
- Распаковка без вложенной папки
- Указать конкретный файл или каталог для распаковки
- Исключение файлов по маске
- Работа с архивами, разбитыми на части
- Создание tar из отдельных файлов с последующим его архивированием
- ZIP
- Windows
Как распаковать tar bz2 xz gz архивы в Linux
Для распаковки tar-архивов через командную строку используется утилита tar.
Полезно знать, что архивы в формате tar имеют расширение файлов .tar . Также в Linux распространены архивы, которые имеют дополнительное сжатие другими программами. Например, архивы .tar.bz2 , .tar.gz и другие. Все эти архивы можно распаковать утилитой tar.
Распаковка tar
Для распаковки архива в формате .tar в текущую директорию выполните команду:
Распаковка tar.bz2, tar.bzip2, tbz2, tb2, tbz
Распаковка tar.xz, txz
Распаковка tar.gz, tgz
Распаковка tar.lzma
tar --lzma -xvf archive.tar.lzma
Пояснение опций
x — распаковать архив.
v — Verbose-режим (вывод на экран дополнительной информации во время распаковки).
f — выполнить распаковку архива из файла.
j — вызвать bzip2 для распаковки архива.
z — вызвать gzip
J — вызвать xz
Распаковка в определенную директорию
Чтобы распаковать архив в определенную директорию используется опция -C или —directory , например:
tar xvf archive.tar -C /to/directory
Примечание: директория должна существовать.
Заключение
Мы рассмотрели базовый набор команд, который можно использовать для распаковки различных видов tar-архивов. Существуют также еще некоторые типы архивов, но они менее распространены.
Смотрите также
- Gentoo
- GNOME
- GRUB
- Ubuntu
- Внешний вид
- Игры Linux
- Интернет и сети
- Командная строка
- Настройка Linux
- Оборудование и драйвера
- Программы Linux
- Файловая система
- Шрифты
- Общие темы
- Руководство по Ubuntu Linux для начинающих
- Elementary OS
- ArchLinux
- Команды Linux
Новое в галерее
Новые комментарии
Комментарии
Постоянная ссылка на комментарий
Постоянная ссылка на комментарий
Постоянная ссылка на комментарий
Постоянная ссылка на комментарий
Очевидно, эта статья не для завсегдатаев сайта, а для поисков и новичков, которые будут гуглить подобную информацию
Постоянная ссылка на комментарий
Постоянная ссылка на комментарий
-a, —auto-compress
Use archive suffix to determine the compression program.
Постоянная ссылка на комментарий Родительский комментарий aNDy
Ключ -a работает при создании архивов, например
tar -cvaf doc.tar.xz ~/Documents/
Тут главное не ошибиться с расширением. Например, если указать «.tar.bz» — создастся обычный tar без сжатия («.tar.bz2» — Ok)
Возможно, именно поэтому в своё время мне показалось, что оно меня игнорирует, и я решил, что это ключ для распаковки : )
А для распаковки дискового файла с правильным расширением достаточно просто
без указания метода сжатия.
Проверено для gz, bz2, xz, lz, lzma
Постоянная ссылка на комментарий
Юрий было бы не плохо опубликовать статью про температуру процессора, как её регулировать, или как она регулирается и т.п., много вопросов и мало ответов.
Постоянная ссылка на комментарий
Очень просто. Нажимаем правой кнопкой мыши на значок архива, появляется контекстное меню и в нем есть кнопка «Распаковать» (способ подходит для файловых менеджеров Dolphin и Thunar)
Постоянная ссылка на комментарий Родительский комментарий KittyBlanc
$ wget http://linux.palemoon.org/datastore/release/palemoon-unstable-latest.linux-x86_64-gtk2.tar.xz -qO- | tar -xvJ
Как сделать в Dolphin или Thunar?
Постоянная ссылка на комментарий Родительский комментарий aNDy
Постоянная ссылка на комментарий Родительский комментарий KittyBlanc
Врёшь. Не написал.
Нет ничего про распаковку скачиваемого потока.
Постоянная ссылка на комментарий Родительский комментарий aNDy
Постоянная ссылка на комментарий
Кхе кхе, прошу прощения в графическом режиме уже запретили?! огонь добывать с помощью палки и камня прикажите?
Постоянная ссылка на комментарий Родительский комментарий Незнайка
Постоянная ссылка на комментарий
unpack () <
if [[ -f $1 ]]; then
case $1 in
*.tar.bz2) tar xjfv $1 ;;
*.tar.gz) tar xzfv $1 ;;
*.tar.xz) tar xvJf $1 ;;
*.bz2) bunzip2 $1 ;;
*.gz) gunzip $1 ;;
*.rar) unrar x $1 ;;
*.tar) tar xf $1 ;;
*.tbz) tar xjvf $1 ;;
*.tbz2) tar xjf $1 ;;
*.tgz) tar xzf $1 ;;
*.zip) unzip $1 ;;
*.Z) uncompress $1 ;;
*.7z) 7z x $1 ;;
*) echo «I don’t know how to extract ‘$1′» ;;
esac
else
case $1 in
*help) echo «Usage: unpack ARCHIVE_NAME» ;;
*) echo «‘$1’ is not a valid file» ;;
esac
fi
>
# function to create archives
# EXAMPLE: pack tar file
pack () <
if [ $1 ]; then
case $1 in
tar.bz2) tar -cjvf $2.tar.bz2 $2 ;;
tar.gz) tar -czvf $2.tar.bz2 $2 ;;
tar.xz) tar -cf — $2 | xz -9 -c — > $2.tar.xz ;;
bz2) bzip $2 ;;
gz) gzip -c -9 -n $2 > $2.gz ;;
tar) tar cpvf $2.tar $2 ;;
tbz) tar cjvf $2.tar.bz2 $2 ;;
tgz) tar czvf $2.tar.gz $2 ;;
zip) zip -r $2.zip $2 ;;
7z) 7z a $2.7z $2 ;;
*help) echo «Usage: pack TYPE FILES» ;;
*) echo «‘$1’ cannot be packed via pack()» ;;
esac
else
echo «‘$1’ is not a valid file»
fi
>
Использование 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 | Извлечь файлы из архива. |
* нельзя использовать несколько вышеперечисленных ключей в одной команде.
Дополнительные опции
Ключ | Описание |
---|---|
—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 пропустит одну вложенную папку внутри архива.
Указать конкретный файл или каталог для распаковки
Если у нас большой архив, но извлечь нужно конкретный файл или каталог, то можно указать его через пробел после указания файла с архивом. Синтаксис:
Рассмотрим пример. Напомним, что можно посмотреть содержимое архива с помощью опции 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.