суббота, 16 мая 2009 г.

Архивирование/разархивирование в консоле

Архив RAR
устанавливаем
sudo aptitude install unrar rar
Для упаковки директории в архив пишем:
rar a new_arhiv.rar /Директория/которую/архивируем
Для распаковки
unrar new_arhiv.rar
Архив ZIP
устанавливаем
sudo aptitude install zip
Для упаковки директории в архив пишем:
zip -r new_arhiv.zip /Директория/которую/архивируем
Для распаковки
unzip new_arhiv.zip
Архив TAR
Для упаковки директории в архив пишем:
tar -cvf new_arhiv.tar /Директория/которую/архивируем
Для распаковки
tar -xfj arhiv
tar -xvf arhiv.tar


Или с опцией, указывающие путь распаковки
tar -xvf arhiv.tar -C /путь/распаковки
Архивация нескольких директорий в tgz
tar cvpzf myfiles.tgz /директория/1/ /директория/2/
разархивация
tar xvpfz myfiles.tgz -C /путь/разархивации
По аналогии используется и работа с архивами tar.gz и tar.bz2
Для упаковки tar.gz
tar -zcvf new_arhiv.tar.gz /директория/архивирования
tar -jcvf new_arhiv.tar.bz2 /директория/архивирования
Для распаковки
tar -zxvf new_arhiv -C /путь/распаковки
tar -jxvf new_arhiv -C /путь/распаковки
Архив 7z
Устанавливаем
sudo aptitude install p7zip p7zip-full
p7zip -d filename.7z
или так:
7z a -t7z -mx5 /куда/архив.7z /что/архивировать
Подробно по 7z  http://help.ubuntu.ru/wiki/7zip

Архив LZMA
Установка
sudo aptitude install lzma
Упаковать файл. Внимание! архивируется сам файл, т.е. из файла получится архив! самого файла после упаковки не будет!
lzma -z filename
Распаковка
lzma -d filename.lzma

Atool - набор скриптов для управления различными архивами

Несколько примеров:
Распаковать архив в поддиректорию (или в текущую директорию, если там находится только один файл):
aunpack foobar.tar.gz
Создать zip архив из двух файлов 'foo' и 'bar':
apack myarchive.zip foo bar
Особеностью atool являеться то, что перед распаковкой проверяется находится ли директория внутри архива или же там находятся файлы, предотвратить перезапись уже существующих, и не распакует архив кучей файлов

Просмотр содержимого архивов
tar -tf  archive.tartar -ztf archive.tar.gz
tar -jtf archive.tar.bz2

7 комментариев:

Анонимный комментирует...

Вроде простые вещи, а всегда забываю про ключи для архивирования.

Спасибо.

Alexey Kostryukov комментирует...

сам постоянно к этой странице обращаюсь)

Alex комментирует...

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

Alex комментирует...

Нужно что-то наподобие этой команды для Windows:
7z a D:\Some_Dir2\File.zip D:\Some_Dir1\File

Alexey Kostryukov комментирует...

я не понял что нужно, заархивировать директорию \Some_dir1\file и поместить созданных архив в директорию \Some_dir2\File.zip, которая до момента архивации не существовала ?

Alex комментирует...

Да. Просто нужно сделать это в одну строку.

Alexey Kostryukov комментирует...

а эта же строка не работает на linux?
не могу сейчас проверить, но 7z те же опции использует, как и в win.
ну на крайний случай:
mkdir ~/Some_dir2 && 7z a /Some_dir2/file.zip /Some_dir1/file