#############################################
# ПРАКТИЧЕСКАЯ РАБОТА 14
# Архивирование и сжатие информации
#############################################
cd ~
##########
# ЗАДАНИЕ 1
##########
# 1.1 file1.txt - случайные символы из /dev/random (например, 1 КБ)
head -c 1024 /dev/random > file1.txt
# 1.2 file2.txt - 10 раз один и тот же текст (Lorem ipsum)
LOREM_TEXT="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."
: > file2.txt
for i in $(seq 1 10); do
echo "$LOREM_TEXT" >> file2.txt
done
# проверить
wc -l file2.txt
head -n 2 file2.txt
# 1.3 file3.txt - бинарный файл, скопированный как «текстовый»
# в качестве источника возьмём /bin/ls (любой бинарь)
cp /bin/ls file3.txt
# проверить, что все три файла на месте
ls -l file1.txt file2.txt file3.txt
# 1.4 Заархивировать файлы с помощью tar
tar -cvf files.tar file1.txt file2.txt file3.txt
ls -l files.tar
##########
# ЗАДАНИЕ 2
##########
# Сжать архив files.tar и файл file2.txt gzip, bzip2, xz, cpio
# 2.1 gzip
cp files.tar files.tar.gz_source
cp file2.txt file2.txt.gz_source
gzip files.tar.gz_source
gzip file2.txt.gz_source
# 2.2 bzip2
cp files.tar files.tar.bz2_source
cp file2.txt file2.txt.bz2_source
bzip2 files.tar.bz2_source
bzip2 file2.txt.bz2_source
# 2.3 xz
cp files.tar files.tar.xz_source
cp file2.txt file2.txt.xz_source
xz files.tar.xz_source
xz file2.txt.xz_source
# 2.4 cpio
# создадим cpio‑архив, в который положим files.tar и file2.txt
# сначала подготовим список файлов
echo "files.tar" > cpio_list.txt
echo "file2.txt" >> cpio_list.txt
# создаём архив в формате cpio
cpio -ov < cpio_list.txt > files_and_file2.cpio
# проверить, что все сжатые файлы существуют
ls -l files.tar* file2.txt* files_and_file2.cpio
##########
# ЗАДАНИЕ 3
##########
# Найти слово "Lorem" в сжатых файлах, не разжимая их
# 3.1 gzip-файлы
zgrep "Lorem" files.tar.gz_source.gz
zgrep "Lorem" file2.txt.gz_source.gz
# 3.2 bzip2-файлы (используем bzgrep)
bzgrep "Lorem" files.tar.bz2_source.bz2
bzgrep "Lorem" file2.txt.bz2_source.bz2
# 3.3 xz-файлы (используем xzgrep)
xzgrep "Lorem" files.tar.xz_source.xz
xzgrep "Lorem" file2.txt.xz_source.xz
# 3.4 cpio-архив: прямого zgrep нет, но можно прочитать содержимое и прогнать через grep
# (cpio у нас не сжатый, поэтому обычный grep по потоку)
cpio -it < files_and_file2.cpio
# чтобы поискать "Lorem" внутри файлов архива:
cpio -iv --to-stdout file2.txt < files_and_file2.cpio | grep "Lorem"
##########
# ЗАДАНИЕ 4
##########
# Разархивировать только file2.txt
# 4.1 из tar-архива files.tar извлечь только file2.txt
tar -xvf files.tar file2.txt
# 4.2 (если нужно из cpio) извлечь только file2.txt
cpio -iv file2.txt < files_and_file2.cpio
# 4.3 проверить содержимое file2.txt после извлечения
ls -l file2.txt
head -n 3 file2.txt