Цель работы: освоить команды архивирования и сжатия файлов
Под архивированием понимают помещение содержимого нескольких файлов в один файл (архив). Сжатие позволяет экономить место при хранении файлов.
Для архивирования файлов применяют команду tar (от Tape ARchive), изначально ориентированную на создание архивов на ленте. Ее синтаксис:
tar [опции] архив [файл(ы)].
Опции определяют действия архиватора:
-f — поместить архив в файл или на устройство (в первом случае указание этой опции почти для всех операций обязательно);
-A — добавить файлы в архив;
-c — создать новый архив;
-d — найти различия между объектами архива и их «исходниками» в файловой системе;
-r — добавить файлы в конец архива;
-t — вывести содержание архива;
-u — добавить в архив только те файлы, которые ранее не были включены в архив;
-x — извлечь файлы из архива;
-v — вывод на экран списка обрабатываемых файлов.
Если в качестве имени архива указать -, то данные направляются в стандартный вывод, что позволяет использовать команду tar в конвейерах.
Примеры:
tar -cf arc/mydoc.tar doc1 doc2 — создать архив mydoc.tar в подкаталоге arc текущего каталога, поместив туда файлы doc1 и doc2;
tar -rf arc/mydoc.tar /home/igor/doc — добавить к архиву каталог /home/igor/doc.
Для сжатия файлов применяется программа gzip, используя алгоритм сжатия Лемпеля-Зива. После сжатия к имени файла добавляется расширение .gz. Синтаксис команды:
gzip опции [файл(ы)].
При работе команды указанные файлы будут замещены сжатыми вариантами (с расширением .gz) с аналогичными парами доступа и владельцем. Если список файлов отсутствует, то или указывается символ -, то осуществляется сжатие стандартного ввода с направлением на стандартный вывод. Положение сжатых файлов при этом можно задавать перенаправлением вывода. Опции команды gzip:
-d — распаковать архив (можно также использовать отдельную программу gunzip);
-l — просмотр содержимого архива;
-t — проверка целостности архива;
-c — запись на стандартный вывод, сжимаемый файл не уничтожается;
-r — рекурсивная упаковка файлов в каталоге;
-v — вывод на экран отчета о работе;
-n — задать степень сжатия n (число от 1 (минимальная) до 9 (максимальная); по умолчанию 6).
Пример: gzip -tv9 mydoc — упаковка файла mydoc с максимальной степенью сжатия, проверкой целостности и выводом отчета.
1. Заархивируйте все файлы в домашнем каталоге, содержащие буквосочетание hlp в файл myarc.tar. Сравните суммарный размер исходных файлов (команда du) и размер архива.
2. Выведите на экран содержание архива myarc.tar. Сравните владельца, права доступа и время создания исходных файлов и архива.
3. Добавьте в архив myarc.tar два произвольных файла. Просмотрите содержимое архива.
4. Создайте каталог Temparc, скопируйте в него архив myarc.tar. Распакуйте архив в созданном каталоге. Просмотрите содержимое каталога Temparc.
5. Сожмите архив myarc.tar без его удаления с максимальной степенью сжатия. Просмотрите содержимое архива myarc.tar.gz.
6. Сожмите архив myarc.tar без его удаления в файл myarc1.tar.gz c минимальной степенью сжатия. Сравните размеры архивов myarc.tar.gz и myarc1.tar.gz.
7. Удалите файлы myarc.tar.gz и myarc1.tar.gz. Используя конвейеры, заархивируйте и сожмите без удаления все файлы в домашнем каталоге, содержащие в именах буквосочетание hlp, в файл myarc.tar.
8. Создайте каталог Temparc1. Создайте в этом каталоге два различных заархивированных (но не сжатых) файла testgzip.tar и test2gzip.tar. Используя ключ -c команды gzip, сожмите первый файл в ~/test/testgzip.tar.gz.
9. Используя перенаправление вида gzip -c файл >> архив.gz, добавьте в конец сжатого файла второй заархивированный файл. Просмотрите содержимое архива testgzip.tar.gz. Распакуйте файл testgzip.tar.gz.