Средства архивации и компрессии
Средства архивации и компрессии необходимы как для транспортировки данных, так и для их резервного копирования. Программы-архиваторы обеспечивают сборку группы файлов или каталогов в форму, подходящую для записи на резервный носитель и последующего восстановления с него в первозданном виде. Средства же компрессии предназначены для уменьшения объема, занимаемого файлами на диске (или ином носителе).
В ОС MS DOS и Windows программы-архиваторы выступают одновременно и в роли компрессоров, но в Linux это разные операции и они выполняются разными программами.
Основным инструментом архивации в Linux является команда tar. Изначально она предназначалась для создания архивов на магнитной ленте, откуда и название ( tar — от Tape ARchive ), однако ныне используется просто для объединения нескольких файлов или каталогов в один архивный файл (*.tar ) с сохранением путей, прав доступа и принадлежности. Она же позволяет развернуть архив в группу файлов или каталогов.
Формат команды tar следующий: tar fo file1 file2... file99
/adabas /autosavc
|
ЕЯ |
К 1 V11,1 ссылка j. ссыпке псыпки l/i pyillNl эасииренны |
|
■ качалша 1ТЭЛО! л |
|
/c»f I ic:«S?
:nof f i celjU
Hint: [>o you want I .i k'.:|(tf ii I host ;!■■; 1llffBBIIH2flgRl3
0'-4.[gN----
Иия
/--/tluts
/letter
/« IlivaГ"
/ri s insta 11
adnrrin.txt
nin. l> t--fragments.txt
ins I-ill . L\l
r2.txt CxI^.eIek
Размер Бремя правки
409G Иил 4 13:51
4096 Июн 27 12:30
4096 Нин 24 07:Э5
4096 !Лон ^fi П : Н?
4096 Ивн 24 09:48
409Й Июл 5 07:34
32ЭДП Ивн 20 19:18
"32470 Инн 24 10:53
13284 Ивл 1 OS:12
79376 Инн 24 16:51
с|ч1яг1Лх1 qstart.txt"'
the Configuration dialog
■l■■ Ш ъУМHI bitffl ЯВ7;п1и ВВЯгДД! i -.у ■■: И юШВ
Рис. 8.11: Меню Файл — основные файловые операции
где f — параметр, определяющий выполняемую функцию, o - опции этой функции, file* — имена файлов для архивирования или архивов для развертывания. Для параметров и опций используется два вида нотации — сокращенная (однобуквенная) и полная. Особенностью синтаксиса tar является то, что при сокращенной нотации знак дефиса перед параметром и опциями не обязателен (хотя и допустима конструкция tar -fo file), а сами они пробелами не разделяются. При полной нотации перед параметром и опцией ставится двойной дефис и разделяющий ихпробел:
tar --function --option file
Некоторые параметры можно задать только в полной нотации. В частности, получить справку по tar можно только командой
-help
tar h или tar -h
В соответствии с назначением программы, в tar имеется два главныхпараметра—c (или --create) для создания нового архива, и x (или --extract) —

Рис. 8.12: Установление прав доступа
для развертывания существующего. Кроме того, над архивами возможны следующие действия:
•t (--list) — вывод списка файлов архива;
•d (--dif f) — сравнение архива с каталогом для поиска различий;
•r (--append) — присоединение файлов к концу архива;
•u (--update) — обновление архива, то есть присоединение отсутствующихв нем файлов и замена имеющихся их более новыми версиями (если они имеются);
•A (--catenate) — присоединение одного tar-архива к другому;
•--delete — удаление файлов из архива.
Каждый параметр может иметь более чем одну опцию. Однако последней принято ставить опцию f или --file (для некоторыхверсий tar это является обязательным требованием), за которой следуют аргументы — имя файла создаваемого архива, а потом имена файлов для архивирования. Если опция f не указана, программа пытается создать архив (или считать его) на устройстве по умолчанию — стримере /dev/rmt0, а поскольку такового в системе, скорее всего, нет, последует сообщение об ошибке.

Рис. 8.13: Определение принадлежности файлов
В промежутке между параметром (например,силих) и опцией f могут быть использованы дополнительные опции, такие как:
•v — вывод имен архивируемых/разархивируемых файлов; двойная опцияwвыводит полную информацию о файлах;
•W — верификация архива;
•k — запрет на переписывание существующихфайлов при разархивации;
•другие. Из нихважны опции z и j , предписывающие сжимать архивируемые файлы с помощью программ компрессии gzip и bzip2 соответственно. Или, напротив, распаковывать сжатые tar-архивы при разархивации (или при просмотре архива), о чем будет сказано ниже.
С помощью tar можно архивировать не только отдельные файлы, но и целые каталоги, в том числе с подкаталогами любого уровня вложенности. Так, командой
tar cvf alldata.tar ~/alldata
каталог alldata в домашнем каталоге пользователя будет целиком упакован в архив alldata.tar, который будет помещен в текущий каталог. Если просмотреть его потом командой
азмер И|?емя правки I
Я Ищи 1(1 [5:54 /..ггЬД)Лир 7 03:17 /addbas 64188 Лгтр £ 00:10 /autBsavc Ji40J ЛипS1?:30
Размер Бремя правки 4006 №11ТО14:181096rton 12L!:Zi 4096Нин19 23:17
1ИУЬ | /ил 1
мпяин i fjyuiN! ЯРУiмг.хтнип
[flwx]Irwx][r-kj[alv
Флаг === = =________
РеИИМ 1077Ь
ipynnn
lalv ]
[<млнежргеъ >|f}«|NHriiK |
4 09:5Ci ?|?:?344>yfj Irtm 1 U9:2U
lo use the mouse cut and paste may require holding the shift keylocal hostMnTI^^^^ ^^^^ ^^^^^ ^^^^^
"? ^SI И ЛЙ IHBiTTffl E ьТЯВ Й1 bitffl ЯВ7;п1и ВВЯгДД! i ■ -.у- И юТРЯ
□ l«ri.lg-^.H .*-J
Рис. 8.14: Установка прав доступа в символьной форме
tar tf alldata.tar
можно видеть, что путь каждого файла будет включать в качестве первого элемента домашний каталог пользователя:
home/username/alldata home/username/alldata/datal home/username/alldata/datal/filel
и т.д. Та же команда в форме
tar cvf alldata.tar alldata
(в предположении, что текущим является домашний каталог пользователя) приведет к сохранению в архиве путей вида
alldata alldata/datal alldata/datal/filel
Наконец, если архивировать тот же каталог командой

П.~*..|У!-------.
Рис. 8.15: Главное меню: пункт Команды
tar cvf alldata.tar alldata/* пути файлов в архиве примут вид
alldata/datal alldata/datal/filel
и т.д. Все это должно учитываться при разархивации. Обычно принята вторая форма архивирования, то есть
tar cvf alldata.tar alldata
В этом случае при его разархивации в произвольном месте файловой системы целиком командой
tar xvf alldata.tar
просто создается новый каталог ~/alldata, куда и помещаются все распакованные файлы. Это предотвращает ихсмешение с существующими файлами и уничтожение последнихпри случайном совпадении имен.
Из созданного архива можно извлекать и отдельные файлы, что требует указания не только ихимен, но и полныхпутей в той форме, в которой они сохранены в архиве, например:

Рис. 8.16: Вывод дерева корневого каталога
tar xvf alldata.tar alldata/data1/file1
Пути эти можно предварительно узнать с помощью команды
tar tvf alldata.tar
Наиболее употребимая в Linux программа компрессии — gzip , предназначенная для сжатия файлов; парной ей является утилита gunzip , служащая для ихраспаковки. Впрочем, обе они, при использовании соответствующей опции, выполняют и обратную исходной операцию.
Программа gzip — это именно и только чистый компрессор, применимый лишь к единичному файлу. При этом (внимание!) исходный несжатый файл подменяется его сжатой копией, которой автоматически присваивается расширение *.gz .
Формат команды: gzip file
в результате чего образуется файл file.gz , а исх одный file исчезает. Обратная процедура выполняется командой

П.~*..|У!-------.
Рис. 8.17: Поиск файла
gunzip file.gz
что влечет за собой замену файла file.gz файлом file. Распаковку сжатого файла можно выполнить и командой gzip, для чего она дается в следующей форме
gzip -d file.gz
или
gzip --decompress file.gz
Команда gzip имеет и другие опции, указываемые в краткой (однобуквенной) или полной нотации. В отличие от tar, знак дефиса (или, соответственно, двойного дефиса) обязателен в обоихслучаях.
Так, опциями -1 ... -9 можно задать степень сжатия и, соответственно, время процедуры: -1 соответствует минимальному, но быстрому сжатию, -9 — максимальному, но медленному. По умолчанию в команде gzip используется опция -6, обеспечивающая компромисс между скоростью и степенью сжатия.
Как уже говорилось, команда gzip (как и gunzip) применима только к единичному файлу. Однако есть возможность с помощью одной команды сжать
Левая панель_____*айл_____Команда_____ НастройкиПравая панель
/ufliceS?
:nof f i ceBU
в речи правки
Ищи 30 19:33
Ивн 12 12:25
Инн 13 23:17
Ие»| 1 03:34
Кпм Ш 22:41
Инн И 13: И
Июл 5 09:4В
/qcoportal /{mix
/sofutsrra
ПГАП.МГlinbookl.sxw
1 int]<>t]kl. Ixl linbook.htrnl 1 inhotjkkoi. Ixl probe.txt
4096 Нин 12 12:23 40У6 Июл 109:20
Размер Время правки 409fi Пил S 21 :34
7821181 H»H1314:57
lfifi31K /:■:. I 13 14:Sfi
2968S78№л5 1B36
103 ЛолИ 13:54
439У70Июл4 11:52
8й!!650 Июл 4 11:57
4375S71Июл4 12:05
815491)№ui4 12:03
120Июи 10IB:00
vou can work or the fi les found using the I'anelize button. urll I ^^^ ^^^ ^^^^ ^^^^
1Шb^ffl ffi б1В5 ДВ7;гсл ИВЯгЛЗН -..у-.: И ю^Я
Рис. 8.18: Размеры каталогов: в правой панели — суммарный объем файлов, в левой — объем, занимаемый файлом каталога.
(или распаковать) сразу несколько файлов. Это делается двояко. Либо в качестве аргументов команды просто перечисляются подлежащие сжатию файлы
gzip file1 file2 ... file99
результатом чего будет появление в текущем каталоге файлов file1.gz , file2.gz и т.д.
Либо, если сжимаемые файлы, расположены в одном каталоге, можно использовать опцию рекурсии -r . Так, если требуется упаковать все файлы в каталоге dir , содержащем файлы file1 и file2 и подкаталог subdir с файлами file3 и file4, команда дается в следующей форме:
gzip -r dir
после чего просмотр командой
ls dir/*
выдаст следующий результат:

Рис. 8.19: Общие настройки MC
dir/filel.gz dir/file2.gz dir/subdir: file3.gz file4.gz
С помощью команд
gunzip -r dir
или
gzip -dr dir
сжатые файлы в каталоге dir будут распакованы.
Поскольку программы tar и gzip обеспечивают каждая свою сторону создания архивов, они обычно используются совместно. Сделать это можно двумя путями. Во-первых, можно ограничиться командой tar с опцией z, например, в следующем виде
tar cvzf dir.tar.gz dir/
Обратите внимание, что расширение *.gz в этом случае нужно указывать в явном виде, автоматически оно к имени архива не присоединяется, и компрессированный архив будет иметь вид dir.tar. Поскольку в Linux расширения
Левая панель______оУайл______Команда_____НастройкиПравая панель
азмер Bpewi правки|по * Ищи 30 19:38 /. .... ИвнU12:21.4096 Ищи 13 23:17
|
(*) ертикальное ( ) []|x/:«]iiiiMiiiiKM^ Iх аеные размеры 045Г ] = [ 3045 |
[к] инейка меню [тс" innw-c: I Ei г у [: - ] омандная строка [|] М Тки КЛАВИШ\\ Срока подсказки [ ] Подсклздл R Г^ггп |
|||
|
С ) Иракаиступа [к] Типн айдов |
||||
|
[< альлс >] [ охранить ] [ рсроать ] |
||||
Размер Время правки
4ГОЙ Иил 5?\ ?А
*1МУЬ и»л 5 20:"
4096 Инк 13 14:57
96 йен 13 14:56
ТО №л 5 16:36
03 ПилЛ13:Я
70 Пил 4 11:5!ЧПИюл 4 11 :57
71 Пил 4 12:01 "О Иин1 4 17:03
" i 10 16:00
| щН1ДД1ТВВ1 И i^Tffl И1б1ЙВ!ЯТ!Д7ШЯ1ЯВ1гДЯЯ1ВВяДЯ!ИЯюТИЯ
Рис. 8.20: Настройка внешнего вида MC
имен файлов не играют той роли, что в MS DOS (о чем подробнее сказано в руководстве администратора), это не помешает распаковке такого файла командой
tar xvzf dir.tar
Следует, однако, помнить, что архив сжатых файлов не может быть обновлен командой tar с параметрами r или u .
Другой способ — создание архивного файла командой вида
tar cvf dir.tar dir/
а затем его сжатие как единого целого командой
gzip dir.tar
В результате образуется такой же файл dir.tar.gz . Однако в принципе архив сжатых файлов и сжатый архивный файл — это разные вещи. Очевидно, что сжатый архивный файл не может быть ни пополнен, ни обновлен средствами tar .

П.~*..|И-------1
Рис. 8.21: Настройка подтверждений
Однако такая процедура возможна с помощью иныхархиваторов (например, ark), поэтому такой формат препочтительнее архива сжатых файлов.
Компрессированные архивы, созданные сочетанием программ tar и gzip — общепринятый в LINUX-системахметод распространения файлов. В итоге почти все программы для Linux, которые можно обнаружить в Интернете, имеют формат *.tar.gz, а некоторые — исключительно в нем. Часто для совместимости с ОС, не допускающими двухточек в имени файла, компрессированным tar-архивам на ftp-серверах присваивается расширение *.tgz.
В коллекцияхпрограмм на ftp-серверах не следует путать простые архивы *.tgz (то есть просто переименованные файлы tar.gz) с бинарными пакетами того же вида, используемыми во многихдистрибутивахLinux (например, в Slackware) или в FreeBSD и OpenBSD. Последние также представляют собой упакованные tar-архивы, но включают, помимо откомпилированных собственно программныхфайлов, также дополнительные инсталляционные сценарии, ориентированные на конкретные дистрибутивы или ОС. Попытка напрямую установить ихвASPLinux, скорее всего, закончится неудачей.
Однако gzip — не единственная программа компрессии для Linux. В последнее время широкое распространение получил компрессор bzip2, обеспечивающий большую (на 10-15%) степень сжатия, хотя и менее быстродействующий.
Использование его практически идентично gzip, с деталями его можно озна-

Рис. 8.22: Настройка ввода/вывода нелатинскихсимволов
комиться с помощью man bzip2 или info bzip2. Итоговый компрессированный файл получает имя вида *.bz2 и может быть распакован командой bunzip2.
Следует только помнить, что форматы *.gz и *.bz2 несовместимы между собой: первый не может быть распакован программой bunzip2, а второй — программой gunzip .
Тем не менее, существуют программы, способные одновременно работать с архивами форматов tar.gz и tar.bz2. К ним принадлежитArk, входящий в составKDEи имеющий, к тому же, удобный графический интерфейс.
ПрограммаArkпредставляет собой оболочку, интегрирующую в себе различные архиваторы и компрессоры командной строки. Она вызывается из стартового меню («Утилиты»- «Архиватор») или набором одноименной команды в окне терминала или строке минитерминала. После этого открывается пустое окно программы со строкой меню и панелью инструментов вверху и статусной строкой внизу (рис. 8.25).
Сразу после запуска доступно два действия — создание нового архива или открытие существующего. Первое выполняется кнопкой в панели инструментов или через меню«Файл»Новый. После этого предлагается дать имя архивному файлу. Формат архива распознается автоматически по расширению, поэтому оно должно быть задано в явном виде.

П.~*..|И-------1
Рис. 8.23: Установка кодировок для имен файлов, передаваемыхнациональными наборами символов
Список поддерживаемыхформатов можно посмотреть, открыв выпадающее меню поля«Фильтр»в панели выбора файлов (рис. 8.26). Он включает все традиционные для LINUX-систем форматы архивов, в том числе и компрессированных— tar, tar.gz, tar.bz2, tar.Z, компрессоры gzip и bzip2, а также некоторые форматы архиваторов/компрессоров MS DOS/Windows — ZIP, LHA и даже RAR.
ПосколькуArk— не более чем оболочка для программ-архиваторов и компрессоров, для работы со всеми теоретически доступными пакетами должны быть установлены соответствующие пакеты, то есть Linux-версии zip и unzip, rar и unrar и т.д. Большая ихчасть входит в состав дистрибутиваASPLinux, хотя некоторые придется доустанавливать из сторонних источников. Так, в дистрибутиве имеется пакет unrar для распаковки RAR-архивов, но парной утилиты гаг для ихсоздания не имеется.
Как уже говорилось, формат создаваемого архива определяется расширением его имени. Соответственно, если в поле выбора задать archive.tar, archive.tar.gz, archive.tar.bz2 или archive.zip, выбранные позднее файлы будут упакованы соответствующим образом.
После задания имени становятся доступными добавление файла или каталога через меню(«Действие»- «Добавить файл»или«Добавить каталог»)или одноименными кнопками на панели инструментов. Это автоматически вызыва-

Рис. 8.24: Распознавание клавиш
ет начало процесса архивации и (или) компрессии. Никакой индикации процесса, правда, не выводится, лишь по завершении в окне программы появляется список входящих в архив файлов (рис. 8.27).
Такой же список выводится в окне и в том случае, если вместо создания нового архивного файла был открыт уже существующий. После этого активизируются пункты в меню«Правка»и«Действия». С помощью первого меню (рис. 8.28) можно выбрать один или несколько файлов (введя ихимена вручную), выбрать все файлы, снять или обратить выделение, а также просмотреть вывод архиватора (рис. 8.29).
Над выбранными файлами через меню«Действия»становятся доступны

Рис. 8.25: АрхиваторArkпосле запуска
|
ПИ1.1 |
|||||||
|
±ЛГ\Прьил Длг-шия ЦйрреА™ Привщ, |
|||||||
|
( |
|||||||
|
— |
* •*■ v (Й йг ч ?у| *»■■«■"«"* |
______: |
|||||
|
_ |
..^ Г}РП| ГГф l*ij Clfilfll r^nnlRE ^adroai r^ooct P^nimal *l)j.ei*hv» в]***1 Bjnpflnnflnflfin ^■: г5|Г.Ч в± QnrhF,! |
IjIPYip «мин 1 ynrAD.Iff |
|||||
|
•Utfaf» |
------------------------' |
||||||
|
. „к |
|||||||
|
ШШi<~'"l' |
ЬифлАг^* |
м,-/,-.. |
|||||
|
Jlpiiln ТДЙ r.LUr ".lij.fl!.. ".l*j.Jr M*jnii № r^nj СзфГЬИ фяйны f gt "bt • bjl • Ma■ Z) Ар«*м3ip г i1 ?- ■ *rt -| ■■::. № Г f.| -1 -.:=- ""■"■.. :■-.. ■■■■■-:. ЧЛК ' ■:■■'... .... . .-. |
ш |
г |
|||||
Рис. 8.26: Создание архива вArk
|
Дом* ГЬМкй juMitnuMM И1С1гяйга ГКнЛ» |
||||
|
&fi|l&%[lS:u |
=4 |
$¥ |
||
|
1'мЧ IpJtil.lJt | RS |
■ |
xv/n» \fina/i^np.tTri/nna | |
Faiwpp | RriPUfl |
1 |
|
1ГЁМШ~1Г|«Уё S еЩ n>xxfrtUt 5 n sfll *j, til/. Vt Ц||Цгг*Нл^р«н^дп1Л»_р1»у1а -■■-!,......<■ ■ ,\-; |
iji ii 1 HI ii i |
uiiuui-u^-uai&iaE.fli сгмп.в*.гв>*яв*и 4910 £№-«-» 12*EU9 lhauorti-fft-Jii linn en RFsriKjnni-nT-nR |е.ЫПЗ ММЯЙП-C^Ol £l:£ia ввнгмт.м.гвглисии smi«jHi'4(-»i»$t4i |
||
|
jjj |
1 Pi» |
|||
|
*3U*M НП FlblOpAMM |
HWQ |
ie>pifljuo«,)jon.n4 |
||
Рис. 8.27: Список файлов архива после его создания или открытия
следующие операции (рис. 8.30):«Удалить», «Распаковать», «Вид», «Открыть», «Редактировать».
Смысл первыхдвух пунктов понятен, остальные три вызывают панель выбора приложения для просмотра, открытия или редактирования выбранного файла.
Кроме того, разумеется, к открытому архиву можно в любой момент добавить файл или каталог.
Для конфигурированияArkпредназначено меню«Настройки»(рис. 8.31). Здесь можно включить/выключить показ панели инструментов и строки состояния, скорректировать состав панели (в дополнение к имеющимся по умолчанию кнопкам добавить любые другие, соответствующие действиям из пунктов главного меню), определить горячие клавиши.
Однако главное для пользователя — настройки каталогов, откуда по умолчанию добавляются файлы в существующие архивы, куда записываются вновь

Рис. 8.28: Главное менюArk, пункт«Правка»

Рис. 8.29: Меню«Правка», просмотр вывода архиватора
созданные архивы и т.д. (рис. 8.32).
Иными словами, программаArkупрощает создание архивов, дополняя стандартные утилиты такими возможностями, как интерактивное пополнение и обновление каталогов, удаление из нихненужныхфайлов и т.д. Однако она не предоставляет возможности ряда тонкихнастроек, например, вариаций степени/скорости сжатия, и потому не заменяет утилит командной строки для архивации и компрессии.
- 1060 просмотров
Еще материалы по теме:
- Меню-ориентированный редактор mcedit
- Конверторы кириллических кодировок
- Средства воспроизведения звука
- Текстовый редактор joe
- Приложения OpenOffice.org
- Средства резервного копирования
