Архив tar bz2. Распаковать tar, создать tar - удобная инструкция

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

Использование

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

Создание архива

Для создания архива нужно указать tar соответствующее действие, что делается с помощью ключа -c . Кроме того, для упаковки содержимого в файл необходим ключ -f . Далее укажем сначала имя будущего архива, а затем те файлы, которые хотим упаковать.

Tar -cf txt.tar *.txt

Эта команда упакует все файлы с расширением txt в архив txt.tar. Так и создается простейший архив без сжатия. Для использования сжатия не нужно запускать что-либо еще, достаточно указать tar, каким архиватором следует сжать архив. Для двух самых популярных архиваторов gzip и bzip2 ключи будут -z и -j соответственно.

Tar -cvzf files.tar.gz ~/files

упакует папку ~/files со всем содержимым в сжатый с помощью gzip архив.

Tar -cvjf files.tar.bz2 ~/files

создаст аналогичный архив, используя для сжатия bzip2.

Ключ -v включает вывод списка упакованных файлов в процессе работы. К сожалению, более продвинутой индикации хода процесса (например, указания степени готовности в процентах) в tar не предусмотрено. Для этого используйте графические архиваторы (например, Xarchiver) или пользуйтесь средствами файл-менеджера.

Помимо gzip и bzip2 можно использовать, например, lzma (ключ –lzma) или xz (ключ -J), при этом соответствующий архиватор должен быть установлен в системе.

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

Действие «распаковка» задается с помощью ключа -x . И тут снова потребуется ключ -f для указания имени файла архива. Также добавим ключ -v для визуального отображения хода процесса.

Tar -xvf /path/to/archive.tar.bz2

распакует содержимое архива в текущую папку. Альтернативное место для распаковки можно указать с помощью ключа -C:

Tar -xvf archive.tar.bz2 -C /path/to/folder

Просмотр содержимого архива

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

Tar -tf archive.tar.gz

Она выведет простой список файлов и каталогов в архиве. Если же добавить ключ -v , будет выведен подробный список с указанием размера, прав доступа и прочих параметров (так же, как по ls -l)

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

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

man tar tar --help

В данном материале мы рассмотрим, каким образом можно распаковать архив TAR. Создается подобный файл с помощью программных комплексов, разработанных для платформы Unix.

Описание

Прежде чем рассмотреть, как распаковать TAR, следует разобраться, для каких целей был разработан данный формат. Файл такого типа содержит общий архив, который состоит из нескольких материалов. TAR - это общепринятое расширение в среде Unix. Данный формат используется при передаче различного программного обеспечения. Достаточно часто TAR применяется для формирования архивов в файловой системе. Файл хранит всю информацию о материалах, включая структуру каталогов и временные метки. В одном файле такого типа может содержаться множество материалов. Итак, как TAR распаковать? Windows - ОС, в которой чаще работают пользователи ПК. Начнем с нее.

Как распаковать архив в Windows?

Сейчас мы рассмотрим приложение WinZip. Данный инструмент позволит распаковать TAR. Речь идет об условно-бесплатном файловом архиваторе и компрессоре, который был создан фирмой Corel. Инструмент обладает множеством возможностей. Он позволяет создавать, дополнять, а также распаковывать архивы. Реализована настраиваемая интеграция в среду Microsoft Windows. Поддерживаются 128- и 256-битные ключи Можно осуществить прямую запись архивов на DVD или CD. Реализована автоматизация резервного копирования. Поддерживается протокол FTP. Возможна отправка архивов посредством электронной почты. Поддерживается Юникод.

Взаимодействовать с интересующим нас форматом можно и посредством программы 7-Zip. Речь идет о свободном файловом архиваторе, который обладает высоким уровнем сжатия данных. Разработка приложения ведется с 1999 года. Инструмент распространяется бесплатно. Приложение обладает открытым исходным кодом. Предусмотрено две версии программы. Первая имеет графический интерфейс. Вторая работает на основе командной строки. В приложении присутствует встроенный инструмент для тестирования производительности. Реализован многоязычный графический интерфейс, который имеет функции двухоконного файлового менеджера. Для имён файлов поддерживается Юникод. 7-Zip применяет многопоточность. При сжатии используются особые фильтры-нормализаторы.

Также нам поможет приложение Smith Micro StuffIt Deluxe. Речь идет об инструменте для работы с различными архивами. Программа позволяет шифровать данные, а также делать резервные копии. Архивированные файлы можно защитить паролем. При этом применяется криптование 256- и 512-битными ключами. Программа умеет в автоматическом режиме добавлять информацию, позволяющую восстанавливать архивы. Реализована возможность просмотра сжатых файлов и папок. Присутствует встроенный планировщик, а также обмен файлами посредством сети Интернет.

Другие операционные системы

Теперь мы рассмотрим, как распаковать TAR в Mac OS. Для этого подойдет приложение Apple Archive Utility. Также можно применить программу Incredible Bee Archiver. На Android также можно работать с данным форматом. Для этого подойдет приложение File Viewer for Android. Речь идет об универсальном файловом менеджере, который поддерживает более ста форматов. Материалами можно управлять или просматривать их. Возможно распаковывание архивов интересующего нас формата. Также можно использовать программу RarLab. Распаковать TAR на Linux поможет инструмент GNU Tar.

tar - это архиватор от GNU. tar берёт несколько файлов и/или каталогов и объединяет их в один большой файл. Это позволяет вам сжать целое дерево каталогов, что невозможно сделать с помощью или bzip2. У tar"а есть много опций, которые подробно описаны на его странице руководства.

$ man tar tar -xvvf foo.tar extract foo.tar tar -xvvzf foo.tar.gz extract gzipped foo.tar.gz tar -cvvf foo.tar foo/ tar contents of folder foo in foo.tar

Часто используемые ключи команды tar

    C – создать (create) новый архив

    X – извлечь (extract) файлы из архива

    –delete – удалить (delete) файлы из архива

    R – добавить (append) файлы в существующий архив

    A – добавить (append) tar-файлы в существующий архив

    T – список файлов в архиве (содержимое архива)

    U – обновить (update) архив

    D – операция сравнения архива с заданной файловой системой

    Z – обработка архива с помощью Примеры использования gzip и gunzip . Сжатие или разжатие, в зависимости от комбинации сопутствующих ключей -c или -x.

    J – обработка архива с помощью bzip2. Сжатие или разжатие, в зависимости от комбинации сопутствующих ключей -c или -x.

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

Наиболее общее использование tar заключается в распаковке и разархивировании пакета, загруженного с веб- или ftp-сайта. Большинство файлов имеют расширение.tar.gz. Довольно часто их называют “tarball”"ами. Это означает несколько файлов, заархивированных tar"ом, а затем сжатых gzip"ом. Вы также можете встретить файлы.tar.Z. По сути это то же самое, однако встречаются они в основном на старых системах Unix.

Кроме того вы можете натолкнуться на файлы.tar.bz2. В таком виде распространяются исходные тексты ядра, поскольку так они занимают меньше места для загрузки. Как вы уже наверное догадались, это файлы, заархивированные tar"ом и сжатые bzip"ом.

Вы можете извлечь все файлы из такого архива, воспользовавшись tar"ом с несколькими опциями командной строки. Разархивирование тарбола выполняется с помощью опции -z, которая означает, что сначала файл должен быть пропущен через gunzip, а уже потом распакован. Наиболее общий метод распаковки тарболов:

% tar -xvzf файл.tar.gz

Здесь довольно много опций. Что же они означают? Опция -x означает извлечение. Это важно, поскольку она сообщает tar"у, что именно нужно сделать со входным файлом. В данном случае он будет снова разбит на файлы, из которых он был “слеплен”. Опция -v означает включение подробного режима. При этом на экран будут выведены названия всех извлекаемых из архива файлов. Неплохо было бы использовать эту опцию, чтобы распаковка не выглядела слишком скучно. Вы также можете использовать -vv, чтобы вывод был ещё более подробным и вы получили ещё больше информации об извлекаемых файлах. Опция -z сообщает tar"у о том, что файл.tar.gz нужно сначала пропустить через gunzip. И, наконец, опция -f сообщает tar"у, что следующая строка в командной строке - это файл, с которым надо работать.

Существует несколько способов записи этой же команды. На старых системах, на которых отсутствует подходящая копия GNU tar, вы можете увидеть следующую запись этой же команды:

% gunzip файл.tar.gz | tar -xvf -

В этой команде файл сначала распаковывается, а результат отправляется в tar. Т.к. gzip по умолчанию записывает выходные данные на стандартный вывод, эта команда будет записывать распакованный файл на стандартный вывод. Затем конвейер перенаправляет этот поток в tar для распаковки. Знак “-” означает, что данные берутся со стандартного входа. Таким образом команда разархивирует поток данных, полученный из gzip, и запишет его на диск.

Другим способом записи первоначальной команды является убирание знака “-” перед опциями:

% tar xvzf файл.tar.gz

Также вы можете натолкнуться на bzip"нутый архив. Версия tar, представленная в Slackware Linux, может работать с ними точно так же, как и с gzip"нутыми архивами. Просто вместо опции -z вам нужно использовать -j:

% tar -xvjf файл.tar.bz2

Учтите, что tar будет сохранять извлечённые из архива файлы в текущий каталог. Поэтому, если у вас в /tmp есть архив, который вы хотите распаковать в свой домашний каталог, у вас есть несколько вариантов. Первый - архив можно переместить в ваш домашний каталог, а затем развернуть его с помощью tar. Второй - вы можете указать путь к архиву в командной строке. Третий - вы можете использовать опцию -C, чтобы разархивировать тарбол в указанный после этой опции каталог.

% cd $HOME % cp /tmp/файл.tar.gz . % tar -xvzf файл.tar.gz % cd $HOME % tar -xvzf /tmp/файл.tar.gz % cd / % tar -xvzf /tmp/файл.tar.gz -C $HOME

Все приведенные выше записи являются эквивалентными. В каждой из них архив разворачивается в ваш домашний каталог, а исходный сжатый архив остаётся на месте.

Итак, что же хорошего в том, что вы можете распаковывать архивы, если вы не можете создавать их? tar умеет делать и это. В большинстве случаев можно просто заменить опцию “-x” на “-c”.

% tar -cvzf файл.tar.gz .

В этой команде опция -c сообщает tar"у, что нужно создать архив, а опция -z пропускает полученный архив через gzip, чтобы сжать его. файл.tar.gz - это имя создаваемого файла.

Указание опции “-f” не всегда есть обязательным, однако в любом случае лучше её использовать. Без неё tar будет записывать свои данные на стандартный вывод, что обычно используется для перенаправления потока по конвейеру в другую программу, например, так:

% tar -cv файл.tar . | gpg --encrypt

Эта команда создаёт несжатый tar-архив с содержимым текущего каталога, а затем пропускает тарбол через программу gpg, которая шифрует и сжимает архив, делая невозможным его чтение кем-либо, у кого нет вашего секретного ключа.

tar через ssh

Если компьютер-источник и целевой компьютер связаны по LAN или WAN, то для экономии времени можно комбинировать использование SSH (Secure Shell) и tar для архивирования, копирования и извлечения файлов за один раз. Вот как это делать:

$ (cd ~/stuff; tar --create --gzip --file - *) | \ ssh destination tar --extract --gunzip --file --verbose -C stuff

В этой команде выполняется сразу несколько действий. Давайте разберем ее:

    Последовательность команд, заключенных в круглых скобках, называют вложенной оболочкой - subshell. Изменения, сделанные в subshell-оболочке - например, изменение каталога, - не повлияют на команду в целом, а затронут только среду вложенной оболочки. Поэтому первая управляющая последовательность - (cd ~/stuff; tar –create –gzip –file - *) меняет текущий рабочий каталог на ~/stuff, а затем запускает tar. Так как за вложенной оболочкой следует перенаправление в канал, то все результаты работы subshell посылаются в следующую на очереди команду.

    Как и много других UNIX-утилит, tar может писать в стандартный поток вывода (stdout) и читать из стандартного потока ввода (stdin). И stdout и stdin обычно обозначаются дефисом (-). Поэтому команда –create –file - создает архив в stdout.

    Канал (|) передает все результаты работы subshell в утилиту ssh, которая, в свою очередь, передает все необходимые данные с исходного компьютера на удаленный.

    Наконец, удаленный компьютер запускает собственный экземпляр утилиты tar для извлечения данных из архива. Теперь –extract –file - считывает архив из стандартного потока ввода. Опция -C принуждает tar на целевом компьютере сменить текущий рабочий каталог на stuff, прежде чем начать какие-либо операции разархивирования. Конечным результатом работы этой команды в целом будет передача архива через ssh и распаковка его в ~/stuff.

Итак, с помощью одной команды архив был создан, передан и распакован. Кстати, слегка изменив эту команду, можно копировать архив с удаленного компьютера на локальный и разархивировать его. Вот команда, которую для этого надо выполнить на локальном компьютере:

$ ssh destination cat archive.tgz | \ (cd ~/stuff; tar --extract --gunzip --file -)

Архив на удаленном компьютере будет открыт, затем поток байтов из cat будет послан во вложенную оболочку, которая сменит рабочий каталог, а затем извлечет архив. (Добавление -C ~/stuff к команде tar приведет к тем же результатам; пример показывает только то, что subshell тоже могут работать со входными данными.)

tar exclude

–exclude pattern (-W exclude=pattern) Не обрабатывать файлы или директории, которые совпадают с указанным шаблоном. Учтите, что исключения имеют приоритет над шаблонами или именами файлов, указанных в командной строке.

    Пример: Из директории test при архивировании tar исключить поддиректорию.svn tar -czf test1.tar.gz --exclude=".svn" test/

    Пример: При архивировании текущей директории и сжатием Примеры использования gzip и gunzip , исключить файл с расширениями.tar.gz .iso .deb .py $ tar -czf test.tar.gz *.* --exclude="*.tar.gz" --exclude="*.iso" --exclude="*.deb" --exclude="*.zip" --exclude="*.py"

tar с сохранением прав доступа

Создать архив с сохранением прав доступа. Ключ -p, –preserve-permissions, –same-permissions извлекать информацию o правах доступа к файлу (по умолчанию для суперпользователя)

Tar -cvpf archive.tar.gz dir1

Распаковать архив с сохранением прав доступа

Tar -xvpf archive.tar.gz

tar распаковать в нужную директорию

Чтобы распаковать архив в нужную директорию используется ключ -С

# man tar ... -C directory In c and r mode, this changes the directory before adding the following files. In x mode, change directories after opening the archive but before extracting entries from the archive. ...

Например, пример проверен для FreeBSD:

# tar -xvf /usr/home/darkfire/backup.ns.server.254/usr/ports/distfiles.tar -C /usr/ports/

tar split разбить архив на несколько частей

Split -b 1000m distfiles.tar distfiles.split.tar

В итоге вы получите много файликов типа

Distfiles.split.taraa distfiles.split.tarab distfiles.split.tarai

100m означает 100 мегабайт. Можете написать 100k - это будет 100 киллобайт. Собрать обратно их можно вот так:

Cat distfiles.split.tar* | tar zxvf -

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

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

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

Tar -cf filename.tar file1 file2 fileN

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

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

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

Пример сжатия Gzip :

Tar -cvzf filename.tar.gz dir_name

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

Пример сжатия Bzip2 :

Tar -cvjf filename.tar.bz2 dir_name

Данная команда аналогична предыдущей и имеет отличие в параметре –j , т.к. именно он отвечает за использование метода сжатия Bzip2 .

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

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

Tar -xvf filename.tar.bz2

В данном случае архив filename.tar.bz2 будет распакован в ту папку, в которой вы находились в момент запуска команды. Для того, чтобы распаковать архив в какую-либо другую директорию, можно использовать команду:

Tar -xvf filename.tar.bz2 -C /path/to/folder

В этом случае архив распакуется в указанной директории.

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

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

Tar -tf filename.tar.gz

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

tar можно при помощи команд:

Tar --help #вызов справки по командам и параметрам man tar #вызов расширенной документации

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

Создание zip-архива выполняется командой:

Zip archive.zip filename

Вместо archive.zip указываем имя создаваемого архива. Вместо filename указываем имя файла, который нужно архивировать. Для архивации целой папки необходимо использовать параметр –r , который инициирует рекурсивное архивирование. Без этого параметра будет заархивирована только папка без вложенных в неё файлов. Пример команды:

Zip –r archive.zip dirname

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

Unzip archivename.zip

Если необходимо распаковать в конкретную папку, то для этого используется параметр –d . Например:

Unzip –d dirname archivename.zip

Вместо dirname указывается папка, в которую нужно извлечь данные из архива.

Просмотреть полный список возможностей архиватора zip и unzip можно при помощи команд:

Zip --help или unzip --help #вызов справки по командам и параметрам man zip или man unzip #вызов расширенной документации

Распаковка RAR-архивов

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

Unrar filename.rar

Посмотреть список файлов в архиве без его распаковки можно командой:

Unrar –t filename.rar

Примечание: Стоит отметить, что Unrar может отсутствовать по умолчанию в некоторых Linux-дистрибутивах. Установить данное ПО можно следующими командами:

CentOS/Fedora :

Yum install unrar

Debian/Ubuntu :

Apt-get install unrar-free

Просмотреть полный список возможностей архиватора unrar можно при помощи команд:

Rar --help #вызов справки по командам и параметрам man unrar #вызов расширенной документации

Пример создания резервной копии данных на VPS

Допустим, на VPS необходимо сделать резервную копию файлов сайта, которые располагаются в директории /var/www/html/mysite . Чтобы создать сжатый архив данных, расположенных в указанной директории, необходимо выполнить следующую команду:

Tar -cvzf mysite.tar.gz /var/www/html/mysite

В результате содержимое директории /var/www/html/mysite будет запаковано в архив mysite.tar.gz .

Как создать архив.tar.gz

tar -cvf file.tar /full/path - создать.tar

tar -czvf file.tar.gz /full/path - создать.tar.gz (архив)

tar -cjvf file.tar.bz2 /full/path - создать.tar.bz2 (архив)

Синтаксис этих примеров:
tar [-ключи] [название архива] [путь, что запаковать]

Как открыть (распаковать) .tar

Чтобы распаковать запаковывай.tar: tar -xvf file.tar.gz

Синтаксис: tar [-ключи] [название архива]

Ключи архиватора

с - (Create) создать архив.
z – создает архив.tar.gz
j - создает архив.tar.bz2
x - (eXtract) позволяет вам извлекать файлы из архива.
v - делает вывод tar подробным. Это означает, что на экран будут выведены все найденные в архиве файлы. Если эта опция опущена, информация, выводимая в процессе обработки, будет ограничена.
f - является обязательной опцией. Без неё tar пытается использовать магнитную ленту вместо файла архива.
z - позволяет вам обрабатывать архив, сжатый gzip"ом (с расширением.gz). Если вы забудете указать эту опцию, tar выдаст ошибку. И наоборот, эта опция не должна использоваться для несжатых архивов.
t - (Test) просмотреть содержимое архива.

Более подробно о ключах и возможностях вы можете узнать, набрав команду в среде Unix
[~]# man tar

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

История архиватора

tar (англ. tape archive) - формат битового потока или файла архива, а также название традиционной для Unix программы для работы с такими архивами. Программа tar была стандартизирована в POSIX.1-1998 , а также позднее в POSIX.1-2001 . Первоначально программа tar использовалась для создания архивов на магнитной ленте, а в настоящее время tar используется для хранения нескольких файлов внутри одного файла, для распространения программного обеспечения, а также по прямому назначению - для создания архива файловой системы. Одним из преимуществ формата tar при создании архивов является то, что в архив записывается информация о структуре каталогов, о владельце и группе отдельных файлов, а также временные метки файлов.
Как и другие утилиты Unix, tar - специализированная программа, которая следует философии Unix: «делать только одну вещь» (работать с архивами), «но делать её хорошо». Поэтому tar не создаёт сжатых архивов, а использует для сжатия внешние утилиты, такие как gzip и bzip2. Ранее для сжатия использовалась также утилита compress, которая практически вышла из употребления.

Примечание

Из-за достаточно поздней стандартизации существует несколько похожих, но не до конца совместимых форматов. В частности различие между GNU tar и SUN Solaris tar наблюдается при длине имени файла, включаемого в архив, более 100 символов или размере включаемого в архив файла более 8 ГБ.

Расширения имён файлов

Для файлов, содержащих архивы tar, традиционно применяются следующие расширения имён файлов:

архив tar:
.tar

архив tar, сжатый программой gzip:
.tar.gz
.tgz (в случае ограничений файловой системы на длину расширения)
.tar.gzip

архив tar, сжатый программой bzip2
.tar.bz2
.tar.bzip2
.tbz2
.tb2
.tbz

архив tar, сжатый программой compress
.tar.Z
.taz

архив tar, сжатый программой LZMA
.tar.lzma

архив tar, сжатый программой XZ
.tar.xz

архив tar, сжатый программой lzop

  • Сергей Савенков

    какой то “куцый” обзор… как будто спешили куда то