Практическая работа: Модуль 14. Архивирование и сжатие информации
См. также Требования, правила и цели выполнения практической работы
Практические задания
Задание 1.
Создайте 3 текстовых файла:
file1.txt
- Используя случайные символы/dev/random
file2.txt
- Копируя один и тот же текст 10 раз:«Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.»
file3.txt
- Используя бинарный файл в качестве текстового
Заархивируйте файлы, используя команду
tar
.
Задание 2.
Сожмите полученный архив и файл file2.txt
, используя следующие методы сжатия/архивации – gzip
, bzip2
, xz
, cpio
.
Задание 3.
Не разжимая полученные сжатые файлы, поищите (zgrep) слово Lorem.
Задание 4.
Разархивируйте только файл file2.txt
.
Ответы на практические задания (пошаговые инструкции)
Задание 1.
Создание файлов:
file1.txt: Для создания файла с использованием случайных символов из /dev/random можно воспользоваться утилитой dd следующим образом:
localadmin@astra:~$ dd if=/dev/random of=file1.txt bs=1024 count=1
1+0 записей получено
1+0 записей отправлено
1024 байт (1,0 kB, 1,0 KiB) скопирован, 0,000212911 s, 4,8 MB/
file2.txt: Для копирования текста 10 раз можно воспользоваться командой echo
в цикле:
localadmin@astra:~$ for i in {1..10}; do echo "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."; done > file2.txt
file3.txt: Для создания файла из бинарного файла в качестве текстового можно воспользоваться утилитой cp:
localadmin@astra:~$ cp /usr/bin/zip file3.txt
Архивирование файлов:
Для архивирования файлов используем команду tar
:
localadmin@astra:~$ tar -cvf archive.tar file1.txt file2.txt file3.txt
Задание 2.
Сжатие полученного архива.
gzip:
localadmin@astra:~$ gzip -k file2.txt
localadmin@astra:~$ gzip -k archive.tar
bzip2:
localadmin@astra:~$ bzip2 -k file2.txt
localadmin@astra:~$ bzip2 -k archive.tar
xz:
localadmin@astra:~$ xz -k file2.txt
localadmin@astra:~$ xz -k archive.tar
cpio:
localadmin@astra:~$ ls file2.txt | cpio -o > file2.txt.cpio
localadmin@astra:~$ ls archive.tar | cpio -o > archive.cpio
Задание 3.
Поиск слова «Lorem» без разжатия файла и распаковки архива:
localadmin@astra:~$ zgrep "Lorem" file2.txt.gz
localadmin@astra:~$ bzgrep "Lorem" file2.txt.bz2
localadmin@astra:~$ xzgrep "Lorem" file2.txt.xz
localadmin@astra:~$ cpio -i --to-stdout < file2.txt.cpio | grep "Lorem"
localadmin@astra:~$ zgrep "Lorem" -a archive.tar.gz
localadmin@astra:~$ bzgrep "Lorem" -a archive.tar.bz2
localadmin@astra:~$ xzgrep "Lorem" -a archive.tar.xz
localadmin@astra:~$ cpio -i --to-stdout < archive.cpio | grep -a "Lorem"
Примечание
Так как тут мы работаем с архивным файлом (бинарником), то утилите grep необходимо сказать, чтобы она работала с ним, как с текстом, используя опцию -a.
Задание 4.
Разархивация только файла file2.txt:
localadmin@astra:~$ tar -xvf archive.tar file2.txt