Книга: Основы программирования в Linux

Другие утилиты распространения

Другие утилиты распространения

Программы Linux и исходный код обычно распространяются в виде файлов с именами, в которые включен номер версии, и расширениями tar.gz или tgz. Это сжатые программой gzip файлы TAR (tape archive, архивы лент), также называемые "tarballs" (клубки архивов tar). Если применить обычную команду tar, обрабатывать эти файлы придется в два этапа. Приведенный далее код создает сжатый программой gzip файл TAR вашего приложения:

$ tar cvf myapp-1.0.tar main.c 2.c 3.c *.h myapp.1 Makefile5
main.c
2.c
3.c
a.h
b.h
c.h
myapp.1
Makefile5
$

Теперь у вас есть файл TAR:

$ ls -l *.tar
-rw-r--r-- 1 neil users  10240 2007-07-09 11:23 myapp-1.0.tar
$

Сделать его меньше можно с помощью программы сжатия gzip:

$ gzip myapp-1.0.tar $ ls -l *.gz
-rw-r--r-- 1 neil users 1648 2007-07-09 11:23 myapp-1.0.tar.gz
$

Как видите, в результате впечатляющее уменьшение размера. Файл tar.gz можно в дальнейшем переименовать, оставив просто расширение tgz.

$ mv myapp-1.0.tar.gz myapp_v1.tgz

Практика задания имен, заканчивающихся точкой и тремя символами, — уступка программному обеспечению, работающему в ОС Windows, которое в отличие от программ для ОС Linux и UNIX сильно зависит от наличия корректного расширения файла. Для того чтобы получить свои файлы обратно, удалите сжатие и опять извлеките их из файла, полученного с помощью tar:

$ mv myapp_v1.tgz myapp-1.0.tar.gz
$ gzip -d myapp-1.0.tar.gz
$ tar xvf myapp-1.0.tar
main.с
2.c
3.c
a.h
b.h
c.h
myapp.1
Makefile5
$

С версией GNU программы tar все еще проще — вы можете создать сжатый архив за один шаг:

$ tar zcvf myapp_v1.tgz main.c 2.c 3.c *.h myapp.1 Makefile5
main.c
2.c
3.c
a.h
b.h
c.h
myapp.1
Makefile5
$

Также легко вы можете развернуть файл:

$ tar zxvf myapp_v1.tgz
main.c
2.с
3. с
a. h
b. h c.h
myapp.1
Makefile5
$

Если хотите увидеть содержимое архива, не извлекая его, следует вызвать программу tar с несколько иной опцией: tar ztvf.

В предыдущих примерах мы применяли tar, описывая только необходимые опции. Теперь дадим краткий обзор команды и нескольких самых популярных опций. Как вы видели в примерах, у команды следующая базовая синтаксическая запись:

tar [опции] [список_файлов]

Первый элемент списка файлов — выходной файл, и хотя мы работали с файлами, он может быть и устройством. Другие элементы списка в зависимости от опций команды добавляются в новый или существующий архив.

Список файлов также может включать каталоги, в этом случае по умолчанию в файл включаются все подкаталоги. Если вы извлекаете файлы, нет необходимости задавать имена, т.к. программа tar сохраняет полные пути.

В этом разделе использовалось шесть комбинаций разных опций:

с — создает новый архив;

f — определяет, что выходной файл — не устройство, а файл;

t — перечисляет содержимое архива без реального извлечения элементов;

v (verbose) — по ходу выполнения tar выводит сообщения;

х — извлекает файлы из архива;

z — пропускает архив GNU tar через программу gzip (сжимает его или убирает сжатие).

У команды tar есть еще множество опций, позволяющих улучшить управление действиями команды и создаваемыми ею архивами. Дополнительную информацию о программе tar см. на страницах интерактивного справочного руководства.

Оглавление книги


Генерация: 1.277. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз