Архивы и Сжатие

С возвращением.
В предыдущем уроке ты научился проверять сетевые соединения из терминала.
Теперь возвращаемся к файлам.
Но на этот раз будем их упаковывать.
Потому что иногда не хочется отправлять десять файлов отдельно, как растерянный голубь с документами.
Хочется один архив.
Чисто. Переносимо. Организованно.
Очень по-взрослому.
Что Ты Изучишь
В этом уроке ты научишься:
- создавать архивы через
tar; - распаковывать
.tarфайлы; - создавать сжатые архивы
.tar.gz; - распаковывать
.tar.gzархивы; - создавать
.zipфайлы; - распаковывать
.zipфайлы; - понимать разницу между архивированием и сжатием.
Миссия
Твоя миссия простая:
Создать маленькую папку с файлами, упаковать её в архивы, сжать, распаковать снова и понять, что происходит.
Без магии.
Просто файлы в чемодане.
Архив vs Сжатие
Архив собирает много файлов в один файл.
Сжатие делает файлы меньше.
Это не совсем одно и то же.
Пример:
.tar только архив
.tar.gz архив + сжатие
.zip архив + сжатие
Файл .tar — это как положить много документов в одну папку.
Файл .tar.gz — это как положить эту папку в вакуумный пакет.
Linux это обожает.
Возможно, даже слишком.
Создай Папку для Практики
Перейди в папку для практики:
cd ~/terminal-practice
Если её нет, создай:
mkdir -p ~/terminal-practice
cd ~/terminal-practice
Создай папку для этого урока:
mkdir lesson9-archive
cd lesson9-archive
Создай несколько файлов:
echo "Linux archive practice" > notes.txt
echo "Remember to extract carefully" > reminder.txt
echo "Compression is useful" > compression.txt
Проверь:
ls
Ты должен увидеть:
compression.txt notes.txt reminder.txt
Хорошо.
Теперь есть что упаковывать.
Создай tar Архив
Перейди на уровень выше:
cd ..
Создай .tar архив:
tar -cf lesson9-archive.tar lesson9-archive
Теперь покажи файлы:
ls
Ты должен увидеть:
lesson9-archive
lesson9-archive.tar
Архив создан.
Опции означают:
-c = create
-f = file
То есть команда означает:
Создай архивный файл
lesson9-archive.tarиз папкиlesson9-archive.
Очень логично.
Очень Linux.
Посмотреть, Что Внутри tar Архива
Чтобы посмотреть содержимое .tar архива:
tar -tf lesson9-archive.tar
Опции означают:
-t = показать содержимое архива
-f = file
Ты должен увидеть файлы внутри архива.
Это полезно перед распаковкой.
Потому что распаковывать неизвестные архивы вслепую — это способ превратить чистую папку в цифровой борщ.
Распаковать tar Архив
Создай папку для распаковки:
mkdir extracted-tar
Распакуй архив туда:
tar -xf lesson9-archive.tar -C extracted-tar
Опции означают:
-x = extract
-f = file
-C = распаковать в эту директорию
Теперь проверь:
tree extracted-tar
Если tree не установлен, используй:
ls -R extracted-tar
Ты должен снова увидеть свои файлы.
Архив сработал.
Ничего не взорвалось.
Прекрасный день.
Создай Сжатый tar.gz Архив
Теперь создай сжатый архив:
tar -czf lesson9-archive.tar.gz lesson9-archive
Опции означают:
-c = create
-z = gzip compression
-f = file
.tar.gz очень распространён в Linux.
Также можно увидеть .tgz.
Это фактически та же идея, просто короче.
Потому что, очевидно, даже расширения файлов хотят иметь прозвища.
Распаковать tar.gz Архив
Создай ещё одну папку:
mkdir extracted-targz
Распакуй:
tar -xzf lesson9-archive.tar.gz -C extracted-targz
Опции:
-x = extract
-z = gzip
-f = file
-C = целевая директория
Проверь:
ls -R extracted-targz
Ты должен увидеть распакованную папку и файлы.
Создай zip Архив
zip распространён, когда нужно поделиться файлами с пользователями Windows, macOS или людьми, которые думают, что .tar.gz выглядит как медицинский диагноз.
Создай zip архив:
zip -r lesson9-archive.zip lesson9-archive
Опция -r означает recursive.
Она включает файлы внутри папки.
Если zip не установлен, установи его.
Arch Linux
sudo pacman -S zip unzip
Ubuntu или Debian
sudo apt install zip unzip
Fedora
sudo dnf install zip unzip
Распаковать zip Архив
Создай папку:
mkdir extracted-zip
Распакуй zip:
unzip lesson9-archive.zip -d extracted-zip
Опция -d означает директорию назначения.
Проверь:
ls -R extracted-zip
Твои файлы должны быть там.
Типичные Команды для Архивов
Вот команды, которые ты будешь использовать часто:
tar -cf archive.tar folder
tar -tf archive.tar
tar -xf archive.tar
tar -czf archive.tar.gz folder
tar -xzf archive.tar.gz
zip -r archive.zip folder
unzip archive.zip
Этого достаточно для большинства повседневных задач.
Не нужно запоминать всё сразу.
Твой мозг заслуживает милосердия.
Частые Ошибки
Распаковывать не в той папке
Перед распаковкой проверь, где ты:
pwd
Потом покажи файлы:
ls
Распаковывать архивы в случайных местах — это способ превратить домашнюю папку в гаражную распродажу.
Забыть -r с zip
Это может неправильно включить содержимое папки:
zip archive.zip folder
Используй:
zip -r archive.zip folder
-r заставляет zip взять всё, что внутри.
Путать создание и распаковку
Создать:
tar -czf archive.tar.gz folder
Распаковать:
tar -xzf archive.tar.gz
Маленькая разница.
Большой результат.
Одно упаковывает файлы.
Другое их распаковывает.
Не путай, если хаос не является твоим стилем жизни.
Практика
Попробуй:
cd ~/terminal-practice
mkdir archive-practice
cd archive-practice
echo "File one" > one.txt
echo "File two" > two.txt
echo "File three" > three.txt
cd ..
tar -czf archive-practice.tar.gz archive-practice
mkdir test-extract
tar -xzf archive-practice.tar.gz -C test-extract
ls -R test-extract
Затем ответь:
- Что делает
tar -cf? - Что делает
tar -xf? - Что означает
-z? - Что делает
zip -r? - Почему нужно проверять, где ты, перед распаковкой?
Мини-Задание
Создай такую папку:
backup-demo/
├── notes.txt
├── tasks.txt
└── config/
└── app.conf
Затем:
- Создай
backup-demo.tar. - Покажи его содержимое.
- Создай
backup-demo.tar.gz. - Создай
backup-demo.zip. - Распакуй каждый архив в отдельную папку.
- Проверь, что все файлы на месте.
Без мышки.
Мышка теперь просто декоративный предмет.
Итог
Сегодня ты узнал, что:
- архивы собирают файлы в один файл;
- сжатие делает данные меньше;
.tarобычно только архив;.tar.gz— это архив плюс gzip-сжатие;.zipраспространён для обмена файлами;tar -cfсоздаёт tar архив;tar -xfраспаковывает tar архив;tar -czfсоздаёт сжатый tar.gz архив;tar -xzfраспаковывает tar.gz;zip -rсоздаёт zip архив;unzipраспаковывает zip файлы.
Архивы повсюду в Linux.
Теперь, когда ты видишь .tar.gz, не нужно паниковать.
Это не монстр.
Это просто чемодан с ремнём.
Следующий Урок
В следующем уроке мы изучим переменные окружения, alias и основы shell.
Именно там терминал начинает помнить вещи за тебя.
Как полезный ассистент.
Но с меньшим количеством мнений.