Тематические термины: Linux, FreeBSD.
Утилита командной строки tar используется для работы с архивами в операционных системах на базе UNIX. С ее помощью можно архивировать данные и оптимизировать использование дискового пространства.
Создание выполняется с ключом c. Синтаксис следующий:
tar -c<опции> <новый архивный файл> <что сжимаем>
Пример создания:
tar -czvf archive.tar.gz /home/admins24
* в данном примере будет создан архив archive.tar.gz домашней директории пользователя (/home/admins24)** где z — сжать архив в gzip (без этого параметра, tar не сжимает, а создает так называемый тарбол); c — ключ на создание архива; v — verbose режим, то есть с выводом на экран процесса (очень удобно для наблюдением за ходом работы, но в скриптах можно упустить); f — использовать файл (обязательно указываем, так как в большей степени работаем именно с файлами).
Распаковка выполняется с ключом x с синтаксисом:
tar -x<опции> <архивный файл>
Пример распаковки:
tar -xvf archive.tar.gz
Распаковка .gz файла:
* при возникновении ошибки This does not look like a tar archive, можно воспользоваться командой gzip -d archive.tar.gz.
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
tar -xvzf archive.tar.gzip
* ключ z отвечает за работу с gzip.
Распаковывается, как gzip:
tar -xvzf archive.tgz
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 пропустит одну вложенную папку внутри архива.
Если необходимо пропустить некоторые файлы, вводим команду с ключом –exclude:
tar -czvf archive.tar.gz /wwwsite –exclude=’sess_*’
* в данном примере мы создадим архив archive.tar.gz, в котором не будет файлов, начинающихся на sess_.
Разбить архив на части может понадобиться по разным причинам — нехватка места на носителе, необходимость отправки файлов по почте и так далее.
Чтобы создать архив, разбитый на части, вводим команду:
tar -zcvf – /root | split -b 100M – root_home.tar.gz
* данная команда создаст архив каталога /root и разобьет его на части по 100 Мб.
В итоге мы получим, примерно, такую картину:
root_home.tar.gzaa root_home.tar.gzac root_home.tar.gzaeroot_home.tar.gzag root_home.tar.gzai root_home.tar.gzabroot_home.tar.gzad root_home.tar.gzaf root_home.tar.gzah
Чтобы собрать архив и восстановить его, вводим команду:
cat root_home.tar.gz* | tar -zxv
* нельзя использовать несколько вышеперечисленных ключей в одной команде.
* актуальный список опций можно получить командой man tar.
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:
zip -r archive.zip /home/admins24
* создает архив каталога /home/admins24 в файл archive.zip.
Распаковка ZIP:
unzip archive.zip
В системе на базе Windows встроенными средствами можно распаковать только ZIP-архивы. Для работы с разными архивами рекомендуется поставить архиватор, например 7-Zip.
Продолжая использовать данный сайт вы принимаете политику конфиденциальности и cookies