Архіви і Стиснення

З поверненням.
У попередньому уроці ти навчився перевіряти мережеві з’єднання з термінала.
Тепер повертаємося до файлів.
Але цього разу ми будемо їх пакувати.
Бо іноді не хочеться надсилати десять файлів окремо, як розгублений голуб із документами.
Хочеться один архів.
Чисто. Переносно. Організовано.
Дуже по-дорослому.
Що Ти Вивчиш
У цьому уроці ти навчишся:
- створювати архіви через
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.
Саме там термінал починає пам’ятати речі за тебе.
Як корисний асистент.
Але з меншою кількістю думок.