← Back to course

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

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

З поверненням.

У попередньому уроці ти навчився перевіряти мережеві з’єднання з термінала.

Тепер повертаємося до файлів.

Але цього разу ми будемо їх пакувати.

Бо іноді не хочеться надсилати десять файлів окремо, як розгублений голуб із документами.

Хочеться один архів.

Чисто. Переносно. Організовано.

Дуже по-дорослому.

Що Ти Вивчиш

У цьому уроці ти навчишся:

Місія

Твоя місія проста:

Створити маленьку папку з файлами, запакувати її в архіви, стиснути, розпакувати знову і зрозуміти, що відбувається.

Без магії.

Просто файли у валізі.

Архів 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

Потім дай відповіді:

  1. Що робить tar -cf?
  2. Що робить tar -xf?
  3. Що означає -z?
  4. Що робить zip -r?
  5. Чому треба перевіряти, де ти, перед розпакуванням?

Міні-Завдання

Створи таку папку:

backup-demo/
├── notes.txt
├── tasks.txt
└── config/
    └── app.conf

Потім:

  1. Створи backup-demo.tar.
  2. Покажи його вміст.
  3. Створи backup-demo.tar.gz.
  4. Створи backup-demo.zip.
  5. Розпакуй кожен архів в окрему папку.
  6. Перевір, що всі файли на місці.

Без мишки.

Мишка тепер просто декоративний предмет.

Підсумок

Сьогодні ти дізнався, що:

Архіви всюди в Linux.

Тепер, коли ти бачиш .tar.gz, не треба панікувати.

Це не монстр.

Це просто валіза з ременем.

Наступний Урок

У наступному уроці ми вивчимо змінні середовища, alias і основи shell.

Саме там термінал починає пам’ятати речі за тебе.

Як корисний асистент.

Але з меншою кількістю думок.