Лаб5. Архивация и поиск
Скачать 0.58 Mb.
|
) все файлы, не являющиеся директориями (-not -type d);Министерство образования и науки Российской Федерации Федеральное государственное автономное образовательное учреждение высшего образования «Пермский национальный исследовательский политехнический университет» Электротехнический факультет Кафедра «Информационные технологии и автоматизированные системы» Направление 09.03.04 – «Программная инженерия» О Т Ч Ё Т по лабораторной работе №4 Тема: «Архивация и поиск» Выполнил: студент группы РИС-19-1б Деменев А.С. Проверил: ст. преподаватель кафедры ИТАС Шереметьев В. Г. Дата Пермь, 2021 Цель работыПознакомиться с инструментами для работы с архивами. Получить представление о командах поиска, доступных пользователю командной строки. ЗаданиеС помощью утилит find и wc получите информацию о количестве файлов в домашнем каталоге пользователя. Получите имена всех файлов, не являющихся символическими ссылками или каталогами, и поместите их в файл filelist1.txt. С помощью команд find, xargs и ls получите полную информацию об атрибутах файлов домашнего каталога размер которых превышает 5 Килобайт и поместите результат в файл filelist2.txt. С помощью команды locate получите список имен файлов содержащих в названии строку “bash”. Для команд, используемых в предыдущих подпунктах, получите расположения файлов справочных руководств. Из файла passwd_example c помощью утилиты grep, получите записи пользователей с домашними каталогами в папке home, c указанием номеров строк. Поместите результат в файл filelist3.txt. Сожмите файл filelist1.txt с сохранением исходного файла, утилитой gzip c различными степенями сжатия. Для получившихся файлов узнайте процент коэффициента сжатия. Сожмите файл filelist1.txt с сохранением исходного файла, утилитой bzip2 c различными степенями сжатия. Сравните результаты для утилит gzip и bzip2. Создайте архив tar содержащий файлы filelist1.txt. filelist2.txt и filelist3.txt. Добавьте к созданному архиву файл passwd_example. Создайте архив zip содержащий файлы filelist1.txt. filelist2.txt. filelist3.txt и passwd_example. Сравните размеры получившихся архивов. Распакуйте архив blackbox.tar.gz и запустите находящийся в нем скрипт. Теоретическая частьПоиск файлов Команда find осуществляет рекурсивный обход дерева файловой системы, и производит поиск файла, основываясь на одном или нескольких атрибутах. Альтернативным способом найти интересующий файл по имени является использование команды locate. Поиск в этом случае происходит не по дереву файловой системы, а по специальной базе имен файлов, которая периодически обновляется. Для обновления базы используется команда updatedb. По умолчанию locate не проверяет существуют ли файлы, найденные в базе имен на данный момент. Команда whereis позволяет выполнить поиск расположения исполняемых файлов, файлов с исходным кодом и файлов справочных страниц для выбранной команды. Форматом вывода команды можно управлять с помощью специальных опций. Команда which выполняет поиск пути к исполняемому файлу для определенной команды на основе содержимого переменной PATH. Для поиска строк в файле содержащих определенный шаблон можно использовать команду grep. Если команде не передается список входных файлов, то поиск осуществляется в стандартном входном потоке. Утилиту grep часто используют в связке с другими командами, передавая ей данные на стандартный поток ввода. Возможно применение регулярных выражений при написании шаблона для поиска. Команда xargs преобразует поступающие ей на вход строки в аргументы для заданной команды. АрхивацияДля сокращения объема, занимаемого предназначенными для долговременного хранения или передачи файлами, применяют различные утилиты сжатия. Утилита gzip предназначена для сжатия одного или нескольких файлов. При упаковке оригинальные файлы заменяются файлами с расширением .gz. Перенаправить закодированную информацию на стандартный вывод с сохранением исходного файла можно с помощью опции -с. Распаковка файлов может осуществляться c использованием опции –d или утилитой gunip. Получить информацию о степени сжатия файла можно с помощью опции -l. С помощью числовых опций -[1-9] можно регулировать степень сжатия. Существует похожая на gzip утилита, использующая для сжатия преобразование Барроуза — Уилера, bzip2. Она имеет схожий синтаксис и опции. Сжатые файлы в этом случае имеют расширение .bz2. Одновременно со сжатием, при работе с файлами применяется операция объединения нескольких файлов в один архив. Архивация часто применяется при создании резервных копий. Утилита tar предназначена для упаковки множества файлов в архив, и их извлечения. В качестве аргументов команда принимает архивируемые файлы. Утилита zip выполняет одновременно функции сжатия и архивации. Итоговый файл будет иметь расширение .zip. Для помещения в архив директорий вместе с вложенными файлами используется флаг -r. Для распаковки архива используется утилита unzip. Для получения дополнительной информации об извлекаемых файлах используется опция -l. Ход работыДля получения информации о количестве файлов в домашнем каталоге пользователя с помощью команд find и wc необходимо: С помощью команды find Полученный результат передать на ввод команде wc Для получения всех файлов, не являющихся каталогами или ссылками можно использовать команду $ find-not -type d -and -not -type l >> filelist1.txt.Получить информацию о файлах домашнего каталога, размер которых превышает 5 килобайт можно командой $ find-type f -and -size +5k | xargs ls -l >> filelist2.txt.Для получения списка имён файлов, содержащих в себе строку bash используется команда locate -b bash, опция -b указывает на то, что поиск нужно производить именно по названиям файлов Чтобы найти файлы справки для команд выше используется команда whereis с флагом -m: $ whereis -m find xargs ls locate wcДля нахождения в файле passwd_example записей пользователей с каталогом в home используется команда: $ cat passwd_example | grep -n /home/ >> filelist3.txtРезультат исполнения команд выше представлен на рисунке 1. Рисунок1—выполнениекомандпоискапофайлам Для работы с архивами используются утилиты gzip, bzip2, tar и zip. На рисунке 2 дан пример использования данных утилит. Рисунок2—работасархивами Файлы архивировались с разными степенями сжатия, что можно увидеть по размерам файлов. Также видно добавление файлов в архив, распаковка файла и его выполнение. Ответы на контрольные вопросыКакие утилиты для поиска файлов вы знаете? Для поиска файлов можно использовать утилиты find и locate Как узнать расположения бинарных файлов определённой команды?Узнать расположения файлов определённой команды можно с помощью утилит whereis и which. Где производит поиск файлов команда locate?По специальной базе имен файлов, которая периодически обновляется. Как получить номера строк в файле, не содержащие искомого шаблона?Использовать флаги -v -c для утилиты grep. Как добавить файлы к архиву tar, получить список файлов в архиве?Для добавления используется опция -r, для просмотра опция -l Как извлечь файлы из архива tar, zip?Для извлечения файлов из архивов используется утилита unzip. Также можно использовать опции утилит архиваторов, например, -x для утилиты tar |