Как распаковать 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
Создание и распаковка tar архивов в Linux
Tar — архивы один из наиболее распространённых способов хранения данных в Linux системах. Но tar не сжимает данные в архиве. Tar всего лишь упаковывает файлы. Для сжатия tar умеет работать с утилитами bzip2 или gzip.
Правильнее называть «tarball» (тарболл, «tar» мяч). По сути tar формат — это объединение нескольких файлов в один. Попробуйте объединить несколько текстовых файлов в один tarball и открыть его текстовым редактором. Вы увидите что это лишь большой текстовый файл, в котором перечислено содержимое входящих в него файлов с указанием их путей текстом.
Создать архив из папки
Предположим, что необходимо создать tar архив из папки и использовать при этом сжатие. Чтобы создать архив tar с gzip сжатием, нужно выполнить команду:
tar -zcf /root/files.tar.gz /home/folder/
При выполнении этой команды из содержимого папки /home/folder/ будет создан архив по адресу /root/files.tar.gz . Если указать относительный путь, то файл создастся в той папке, где открыт терминал.
В конце команды передаётся директория, которую надо архивировать. В примере стоит абсолютный путь к этой папке. В таком случае в архиве tar будет находится все родительские папки т.е. при открытии архива там будет папка /home/ и внутри неё папка /folder/. Но если абсолютный путь заменить относительным, то будет только /folder/.
В названии файла «files.tar.gz» можно указать любое расширение. Но для сжатых тарболлов лучше писать именно так. То есть сначала указывать то что это «tar», а потом писать «gz».
Разберём пример по частям. Команда tar в примере выше имеет три ключа:
- z — архивирует с gzip компрессией. Если нужно использовать bzip2, надо заменить ключ «z» на «j».
- c — без этого ключа архив не создастся.
- f — вывод информация в файл. Без этого ключа tar будет выдавать результат на stdout при упаковке и пытаться читать архив с stdin при распаковке.
Исключить папки и файлы при создании архива
Иногда нужно исключить некоторые подпапки при создании архива. К примеру, если надо создать архив из папки /home/, но в него не должны попасть содержания папок /cache/ и /trash/. Тогда необходимо использовать ключ exclude:
tar -zcf /root/files.tar.gz /home/ --exclude=
Символы звёздочек в exclude означают либой набор символов. То есть выполнять эту команду без звёздочек в начале путей, то необходимо прописывать полный путь к папке, которую надо исключить.
В конце значений explude тоже стоят звёздочки, чтобы удалялись не сами папки, а их содержимое (все дочерние файлы и папки).
При выполнении такой команды в архив не попадут файлы из папок:
/home/cache/ /home/folder/cache/ /home/folder/subfolder/cache/
Обратите внимание на то, что внутри фигурных скобок explude нет пробелов . Если поставить пробел до/после запятой или до/после фигурной скобки, то исключение не сработает.'*>
Разархивировать
Чтобы распаковать содержимое tar архива в ту же папку, в которой он находится, перейдите в папку с ним и введите:
tar -xf files.tar.gz
Ключ x указывает на распаковку архива. Ключ f обязателен, как и при создании архива.
Если требуется распаковать архив в определённую папку, то путь к ней можно указать после ключа C:
tar -xf files.tar.gz -C /home/folder/
Создание и распаковка архивов в Linux
В случае с Linux VPS на базе OpenVZ и KVM для работы с архивами достаточно базовых компонентов системы, а именно 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.
Если вы хотите перенести подобный архив с одного VPS на другой, но не знаете, как это сделать, то об этом вы можете узнать в статье Способы переноса файлов между серверами.