Распаковка архива tar gz в linux. Как распаковать или создать архив, используя SSH команды

И 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 - один из наиболее распространённых архиваторов в Linux системах. Но tar не сжимает файлы в архиве. Tar всего лишь упаковывает файлы в архив без компрессии. Для сжатия tar умеет работать в паре с bzip2 или gzip. В статье приведено описание способов применения tar.

Создать архив из папки

Чтобы создать архив tar с gzip сжатием, введите следующую команду:

tar -zcf /root/files.tar.gz /home/folder/

Разберём пример по частям. Команда tar запускается с ключами:

z - Архивирует с gzip компрессией. Чтобы использовать bzip2, надо заменить ключ "z " на "j ".
c - Создаёт архив. Без этого ключа архив не создастся.
f - Без этого ключа архив не создастся. Как гласит документация: "без ключа f tar будет выдавать результат на stdout при упаковке и пытаться читать архив с stdin при распаковке"

После ключей указывается путь к файлу создаваемого архива с его названием: /root/files.tar.gz . Если указать относительный путь, то файл создастся в той папке, где открыт терминал.

В самом конце команды передаётся директория, которую надо архивировать /home/folder/ . В примере стоит абсолютный путь к этой папке. В таком случае в архиве tar будет находится все родительские папки т.е. при открытии архива там будет папка /home/ и внутри неё папка /folder/ . Но если абсолютный путь заменить относительным, то будет только /folder/ .

Разархивировать

Чтобы распаковать архив, перейдите в папку с ним и введите:

tar -xf files.tar.gz

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

Ключ x указывает на распаковку архива. Ключ f обязателен, как и при создании архива.

Если требуется распакавать архив в определённую папку, то путь к ней можно указать после ключа C :

tar -xf files.tar.gz -C /home/folder/

Исключить папки из архива

Иногда возникает задача в исключении некоторых подпапок из архива. К примеру, если надо создать архив из папки /home/, но в него не должны попасть содержания папок /cache/ и /trash/ . Тогда необходимо использовать ключ exclude:

tar -zcf /root/files.tar.gz /home/ --exclude={"*/cache/ *","*/trash/ *"}

В конце значений explude, у папок, нет слеша "/". Если слеша не будет, то удалится не содержимое папки, а вся папка.

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

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 -

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.