- •Лабораторные работы Лабораторная работа №1. Файловая оболочка Midnight Commander
- •Лабораторная работа №2. Информационные команды оболочки, работа со справочной системой
- •Лабораторная работа №3. Управление каталогами
- •Лабораторная работа №4. Файловые операции
- •Лабораторная работа №5. Права доступа к файлам
- •Лабораторная работа №6. Организация поиска
- •Лабораторная работа №7. Регулярные выражения. Команда egrep
- •Лабораторная работа №8. Перенаправление стандартных потоков, конвейеры
- •Лабораторная работа №9. Фильтры, обработка текстовых данных
- •Лабораторная работа №10. Архивирование и сжатие
- •Лабораторная работа №11. Текстовый редактор Vim
- •Vim [ключи] [файл].
- •Лабораторная работа №12. Сценарии оболочки
- •Лабораторная работа №13. Условные конструкции
- •Лабораторная работа №14. Циклические конструкции
- •Лабораторная работа №15. Одномерные массивы
- •Лабораторная работа №16. Потоковый редактор sed
- •Лабораторная работа №17. Язык обработки шаблонов gawk
- •If (условие) {действия1} [else {действия2}].
Лабораторная работа №10. Архивирование и сжатие
Цель работы: освоить команды архивирования и сжатия файлов
Необходимые сведения
Под архивированием понимают помещение содержимого нескольких файлов в один файл (архив). Сжатие позволяет экономить место при хранении файлов.
Для архивирования файлов применяют команду 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 с максимальной степенью сжатия, проверкой целостности и выводом отчета.
Ход работы
Заархивируйте все файлы в домашнем каталоге, содержащие буквосочетание hlp в файл myarc.tar. Сравните суммарный размер исходных файлов (команда du) и размер архива.
Выведите на экран содержание архива myarc.tar. Сравните владельца, права доступа и время создания исходных файлов и архива.
Добавьте в архив myarc.tar два произвольных файла. Просмотрите содержимое архива.
Создайте каталог Temparc, скопируйте в него архив myarc.tar. Распакуйте архив в созданном каталоге. Просмотрите содержимое каталога Temparc.
Сожмите архив myarc.tar без его удаления с максимальной степенью сжатия. Просмотрите содержимое архива myarc.tar.gz.
Сожмите архив myarc.tar без его удаления в файл myarc1.tar.gz c минимальной степенью сжатия. Сравните размеры архивов myarc.tar.gz и myarc1.tar.gz.
Удалите файлы myarc.tar.gz и myarc1.tar.gz. Используя конвейеры, заархивируйте и сожмите без удаления все файлы в домашнем каталоге, содержащие в именах буквосочетание hlp, в файл myarc.tar.
Создайте каталог Temparc1. Создайте в этом каталоге два различных заархивированных (но не сжатых) файла testgzip.tar и test2gzip.tar. Используя ключ -c команды gzip, сожмите первый файл в ~/test/testgzip.tar.gz.
Используя перенаправление вида gzip -c файл >> архив.gz, добавьте в конец сжатого файла второй заархивированный файл. Просмотрите содержимое архива testgzip.tar.gz. Распакуйте файл testgzip.tar.gz.