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

Чтобы распаковать tar архив в Linux нужно воспользоваться следующей командой:
tar -xvf archive.tar
- опция x — говорит что нужно извлечь архив
- опция v — выводит информацию о файлах в архиве в процессе выполнения
- опция f — говорит что мы хотим указать имя файла
- archive.tar — файл, который хотим распаковать
Еще есть возможность указать директорию назначения, т.е. куда нужно распаковать архив:
tar -xvf archive.tar -С /full/path
- опция -C (или —directory) указывает куда нужно распаковать
Также можно указать какие файлы необходимо извлечь из архива:
tar -xvf archive.tar file1 dir/file2
- file1 и dir/file — файлы, которые нужно распаковать
Unix. tar.gz. Как разархивировать отдельную папку или файл
При большом размере файла бэкапа не всегда есть необходимость разархивировать все файлы, вполне достаточно всего одного файла или папки.
Для этого необходимо выполнить следующую команду:
tar -zxvf mytar.ball.tar.gz -C /tmp dir-name
При этом необходимо указывать путь к папке, как он сохранен в архиве. Посмотреть можно следующей командой:
tar -ztf backup.tar.gz |grep dir-name
tar -zxvf mytar.ball.tar.gz -C /tmp www/domain.com/data/
Разархивирует содержимое папки www/domain.com/data/ в папку /tmp
- Техническое задание на сайт
- Маркетинг в создании сайта
- Хостинг — для чего он нужен
- Домен — как выбрать?
- SPIP
- Unix\Linux
+38 (044) 221 90 53
welcome@volter.org
Киев, ул. Маршала Гречка 13, оф. 123
Работа с архивами в Linux
![]()
tar — наиболее популярный архиватор в Unix и Linux-системах. Во всех популярных дистрибутивах систем он установлен по умолчанию. Рассмотрим самые распространенные варианты работы с этой утилитой. Однако, при использовании сжатия формата bzip2, соответствующая утилита может быть не установлена на сервер, в зависимости от операционной системы установите ее командами: Centos
yum install bzip2
Debian/Ubuntu
apt update apt install bzip2
Основные команды
Создание архива tar с именем backup.tar, включающим файлы file01.sql, file02 и file03:
tar -cvf backup.tar file01.sql file02 file03
Просмотр содержимого архива backup.tar:
tar -tf backup.tar
Распаковка архива backup.tar:
tar -xvf backup.tar
Для того, чтобы распаковать архив в указанный нами каталог, нужно добавить опцию -C:
tar -xvf backup.tar -С /root/backup/
Работа со сжатыми архивами. tar только создаёт архив, но не сжимает. Для сжатия используются утилиты bzip2 и gzip. Файлы, сжатые с их помощью, имеют расширения .tar.bz2 и .tar.gz2. Для создания архива с использованием сжатия bzip2 выполним команду:
tar -cjvf backup.tar.bz2 file01.sql file02 file03
Для создания gzip архива нужно изменить один параметр:
tar -czvf backup.tar.gz file01.sql file02 file03
Распаковка tar.bz2 архива:
tar -xjvf backup.tar.bz2 -C /root/backup/
Распаковать tar.gz архив можно командой:
tar -xzvf backup.tar.gz
- Часто бывает, что необходимо сохранить архив на удалённом сервере, т.к места на текущем попросту нет. В этом нам также поможет архиватор tar:
tar zcvf - /var/www/html | ssh root@IP "cat > /var/www/backup.tar.gz"
tar -xvf backup.tar file01.sql file02
Соответственно для .tar.gz команда будет выглядеть так:
tar -zxvf backup.tar.gz file01.sql file02
Для .tar.bz2:
tar -jxvf backup.tar.bz2 file01.sql file02
Работа с архивами RAR
Для работы с RAR-архивами используем утилиты rar для создания архивов и unrar для распаковки. Установить архиватор можно средствами стандартного пакетного менеджера вашей операционной системы, однако, для установки последней актуальной версии воспользуемся другим способом.
Скачиваем с официального сайта архив с бинарными файлами и извлекаем из него файлы rar и unrar, далее копируем их, например, в /usr/bin/, либо производим установку:
wget https://www.rarlab.com/rar/rarlinux-x64-612.tar.gz tar xzf rarlinux-x64-612.tar.gz cd rar make install
Команда make install выполнит следующие действия согласно содержимому файла makefile:
mkdir -p /usr/local/bin mkdir -p /usr/local/lib cp rar unrar /usr/local/bin cp rarfiles.lst /etc cp default.sfx /usr/local/lib
Основные команды
Создание архива файлов file01.sql file02 file03:
rar a archive.rar file01.sql file02 file03
Создать архив директории dir01 рекурсивно:
rar -r a archive.rar dir01
Добавить файлы в архив можно с помощью ключа u, а удалить из архива ключом d:
rar u archive.rar file02 rar d archive.rar file02
Также можно указать степень сжатия архива, параметр сжатия принимает значения от 0 до 5, при этом 0 это без использования сжатия, по умолчанию используется степень 3.
rar a -m5 archive.rar file02
Для распаковки архива также можно использовать rar с опцией x:
rar x archive.rar
Для распаковки RAR-архивов используется утилита unrar. Распаковать архив:
unrar x archive.rar
Распаковать архив в определенную директорию:
unrar x archive.rar ./dir
Проверить, что архив целый:
unrar t archive.rar
Просмотреть список файлов в архиве:
unrar l archive.rar
Использование 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 -xvf archive.tar.gz
Форматы
Утилита tar позволяет работать с архивами различных форматов. Рассмотрим их кратко.
gz
tar -cf archive.tar.gz /files
Распаковка .gz файла:
tar -xf archive.tar.gz
* при возникновении ошибки This does not look like a tar archive, можно воспользоваться командой gzip -d archive.tar.gz.
bz2
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
gzip
tar -xvzf archive.tar.gzip
* ключ z отвечает за работу с gzip.
tgz
TGZ — tar-архив, сжатый с помощью утилиты gzip. По сути, это тот же tar.gz, и работа с ним ведется такими же командами. Рассмотрим примеры работы с данным форматом.
Для создания архива tgz выполняем:
tar -czf archive.tgz /files
Распаковывается, как gzip:
tar -xzf archive.tgz
xz
Это формат сжатия данных с помощью алгоритма LZMA. Для работы с ним устанавливаем:
apt install xz-utils
* на Debian / Ubuntu.
* на Rocky Linux / CentOS.
Теперь можно пользоваться.
tar -cpJf archive.tar.xz /home/user
tar -xpJf archive.tar.xz
Описание ключей 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 tf /backup/samba.tar.gz
Теперь можно распаковать архив:
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-файла:
Файл tar можно удалить:
rm -f my_archive.tar
ZIP
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.