Работа с архиваторами (tar, zip, gz, bzip2) из консоли Linux

Аватара пользователя
Distructor
Администратор
Сообщения: 1600
Зарегистрирован: 28 дек 2009
Краткая памятка по работе с архиваторами (программами управления файловыми архивами) из консоли в Linux.

Работа с TAR

    В двух словах о самом формате tar
    http://ru.wikipedia.org/wiki/Tar писал(а):...в настоящее время tar используется для хранения нескольких файлов внутри одного файла, для распространения программного обеспечения, а также по прямому назначению — для создания архива файловой системы.

    Например чтобы запаковать текущую папку в tar-архив напишем

    Код: Выделить всё

    tar -cvvf foo.tar ./
    где foo.tar имя которое будет присвоено полученному архиву, а "./" указание папки

    А для распаковки этого архива будем использовать

    Код: Выделить всё

    tar -xvvf foo.tar

Работа с TAR/GZ и TAR/BZIP2

    Tar-архив может быть дополнительно сжат одним из поддерживаемых архиваторов: gzip, bzip2 и др.
    Для указания архиватора указывается один из дополнительных параметров, например:
    запаковать gzip'ом foo.tar.gz

    Код: Выделить всё

    tar -cvvzf foo.tar.gz ./

    запаковать bzip2'ом foo.tar.bz2

    Код: Выделить всё

    tar -cvvjf foo.tar.bz2 ./

    распаковать запакованный gzip'ом foo.tar.gz

    Код: Выделить всё

    tar -xvvzf foo.tar.gz

    распаковать запакованный gzip'ом foo.tar.bz2

    Код: Выделить всё

    tar -xvvjf foo.tar.bz2

    Основные опции команды tar
    -A, --catenate, --concatenate
    склеить файлы tar в один архив

    -c, --create
    создать новый архив

    -d, --diff, --compare
    найти различия между архивом и файловой системой

    --delete
    удалить из архива (не применяется к магнитным лентам!)

    -r, --append
    добавить файлы в конец архива

    -t, --list
    показать содержимое архива

    -u, --update
    добавить только новые версии файлов файлов

    -x, --extract, --get
    извлечь файлы из архива

    -j, --bzip2
    используется для создания/распаковки .bz2 файлов

    -z, --gzip, --ungzip
    используется для создания/распаковки .gz файлов

    -M, --multi-volume
    создать/показать/распаковать многотомный архив

    Другие не менее интересные опции этой очень важной команды можно найти в руководстве пользователя - man tar.

Работа с ZIP

    Запаковать текущую папку с подпапками в zip-архив folder.zip

    Код: Выделить всё

    zip -r folder.zip ./

    Распаковать архив folder.zip в папку folder

    Код: Выделить всё

    unzip ./folder.zip -d ./folder

Работа с многотомными архивами tar.gz

    Допустим нам надо запаковать содержимое папки /var/www, исключив папку /var/www/test и все zip архивы, в многотомный архив с размером тома 1024 Мб. Делается это командой

    Код: Выделить всё

    tar -czvf - --exclude=www/test --exclude='*.zip' /var/www/ | split -b 1024m - ./backup.tar.gz
    («-» после -czvf говорит tar'у выводить в stdout, чтобы потом split мог его разбить на части(а «-» в split говорит ему брать из stdin)) В результате будут созданы файлы backup.tar.gzaa, backup.tar.gzab, backup.tar.gzac ..., размер каждого 1024 Мб. Именно последние две буквы в названии архива .tar.gzaa, .tar.gzab и т.д., указывают на то, что он разбит на части.

    Склеить все части можно командой

    Код: Выделить всё

    cat часть1 часть2 часть3 > архив.tar.gz
    Например

    Код: Выделить всё

    cat backup.tar.gzaa backup.tar.gzab backup.tar.gzac > backup.tar.gz

    Если все части архива находятся в одной папке, то команда для склеивания выглядит так:

    Код: Выделить всё

    cat backup.tar.* > backup.tar.gz

Работа с 7zip

    Создание многотомного архива arch.7z папки soft/

    Код: Выделить всё

    7z a -v100m arch.7z soft/
    в результате будут созданы файлы arch.7z.001 arch.7z.002 arch.7z.003 ..., размер каждого 100 Мб (опция -v100m).

    Чтобы распаковать многотомный архив arch.7z.001, достаточно поместить все части архива в текущую папку и дать команду

    Код: Выделить всё

    7z x arch.7z.001

Как распаковать запароленный архив

    Код: Выделить всё

    7z e -pПароль archive.7z

    Код: Выделить всё

    unrar e -p"Пароль" archive.rar
    между вашим паролем и ключем -p не должно быть пробелов, в кавычки надо брать если в пароле используется например дефис или другой системный символ

    создание и распаковка архива с паролем через 7zip

    Код: Выделить всё

    7za a -mhe=on -ms=on -p Documents.7z Documents/
    пароль будет запрошен системой

    Код: Выделить всё

    7za x Documents.7z
    пароль также спросит система после ввода команды

© Creaternal, 2010
При написании использовалась официальная информация.

Аватара пользователя
Distructor
Администратор
Сообщения: 1600
Зарегистрирован: 28 дек 2009
GZIP

gzip test.sql – упакует, добавит gz и УДАЛИТ! файл
gunzip test.sql.gz – распакует и УДАЛИТ! test.sql.gz


Вернуться в «Linux / Unix / ...»