Як розпакувати файл .tar.gz у Linux: повний посібник з розширеними порадами
Робота з стиснутими файлами — це щоденна реальність у будь-якому середовищі Linux. Серед найбільш широко використовуваних форматів .tar.gz, двоетапний формат, який поєднує tar для архівування та gzip для стиснення. Незалежно від того, розпаковуєте ви вихідний код програмного забезпечення, відновлюєте резервні копії або розгортаєте файли конфігурації на сервері VPS Hosting, знання того, як ефективно та безпечно працювати з архівами .tar.gz, є фундаментальною навичкою Linux.
Цей посібник охоплює все — від базової команди розпакування до передових методів роботи з великими архівами, посилення безпеки та найкращих практик написання скриптів.
Що таке файл .tar.gz?
Файл .tar.gz — часто називається tarball — створюється в два етапи:
- tar об’єднує кілька файлів і директорій в один архів (
.tar) - gzip стискає цей архів, щоб зменшити його розмір (
.tar.gzабо.tgz)
Поширені випадки використання
- Розповсюдження вихідного коду програмного забезпечення
- Упакування файлів конфігурації та резервних копій
- Архівування файлів журналу для довгострокового зберігання
- Передача великих дерев директорій між серверами
Приклад назви файлу: project-files.tar.gz
Базова команда розпакування
Стандартна команда для розпакування файлу .tar.gz:
tar -xvzf file.tar.gzРозшифровка прапорців
| Прапорець | Значення |
|---|---|
-x | Розпакувати файли з архіву |
-v | Режим детального виводу — виводить список кожного файлу під час розпакування |
-z | Розпакування за допомогою gzip |
-f | Вказує ім’я файлу для операції |
Ця одна команда справляється з переважною більшістю повсякденних завдань розпакування.
Витяг у конкретний каталог
За замовчуванням, tar витягує файли в поточний робочий каталог. Щоб перенаправити вихід у конкретне місце, використовуйте прапор -C:
tar -xvzf file.tar.gz -C /path/to/target-directory> Примітка: Цільовий каталог повинен уже існувати. Створіть його спочатку за допомогою mkdir -p /path/to/target-directory за потреби.
Цей підхід особливо корисний у скриптах автоматизованого розгортання або при організації кількох архівів на виробничому сервері.
Попередній перегляд вмісту архіву перед розпакуванням
Перед розпакуванням архіву — особливо з невідомого джерела — рекомендується спочатку перевірити його вміст:
tar -tvzf file.tar.gzПрапор -t виводить список усіх файлів і каталогів всередині архіву без розпакування. Це допомагає вам:
- Зрозуміти внутрішню структуру каталогів
- Уникнути випадкового перезапису існуючих файлів
- Виявити підозрілі або неочікувані шляхи
Витягування конкретних файлів або каталогів
Вам не завжди потрібно витягувати весь архів. Щоб витягти окремий файл або папку, вкажіть його шлях точно так, як він з’являється всередині архіву:
tar -xvzf file.tar.gz path/to/specific-file.txtЩоб знайти точний внутрішній шлях, спочатку запустіть команду --list:
tar -tvzf file.tar.gz | grep filename> Важливо: Використовуйте відносний шлях, показаний у списку архіву, а не абсолютний шлях, що починається з /.
Міркування безпеки при розпакуванні ненадійних архівів
Розпакування .tar.gz файлів з невідомих або ненадійних джерел може створювати серйозні ризики безпеки, включаючи атаки обходу шляху, коли шкідливі архіви перезаписують критичні системні файли. Застосуйте такі заходи захисту:
Запобігання перезаписуванню каталогів
tar --no-overwrite-dir -xvzf file.tar.gzВидалення компонентів шляху на початку
Прапор --strip-components видаляє початкові рівні каталогів з розпакованих шляхів, що нейтралізує спроби впровадження абсолютного шляху:
tar --strip-components=1 -xvzf untrusted-archive.tar.gzРозпакування в ізольований каталог
Завжди розпаковуйте ненадійні архіви в спеціальний каталог пісочниці та перевіряйте вміст перед переміщенням файлів у їх остаточне місцезнаходження:
mkdir /tmp/sandbox && tar -xvzf untrusted-archive.tar.gz -C /tmp/sandboxЦі практики особливо критичні на спільній інфраструктурі. Якщо ви керуєте кількома сайтами або клієнтами, розгляньте використання середовищ спільного веб-хостингу зі строгими межами дозволів.
Ефективна обробка великих архівів
Для архівів розміром кілька гігабайтів стандартне розпакування може здаватися чорною скринею. Ці методи покращують видимість і продуктивність.
Моніторинг прогресу за допомогою pv
pv (pipe viewer) відображає панель прогресу в реальному часі та швидкість передачі:
pv file.tar.gz | tar xzvf -Встановіть pv, якщо він ще не доступний:
# Debian/Ubuntu
sudo apt install pv
# CentOS/RHEL/AlmaLinux
sudo dnf install pvВимкніть режим детального виведення для швидшого розпакування
При розпаковуванні дуже великих архівів прапор -v може сповільнити роботу, виводячи тисячі імен файлів у термінал. Видаліть його для кращої продуктивності:
tar -xzf file.tar.gzВикористовуйте паралельну декомпресію з pigz
Для багатоядерних серверів pigz замінює gzip паралельною реалізацією і може значно скоротити час декомпресії:
tar -I pigz -xf file.tar.gzРозпакування в два окремих кроки
Іноді вам потрібен більш точний контроль — наприклад, при інтеграції в конвеєр або перевірці проміжного .tar файлу перед розпакуванням. Ви можете розділити процес на дві команди:
# Step 1: Decompress gzip to get a plain .tar archive
gunzip file.tar.gz
# Step 2: Extract the .tar archive
tar -xvf file.tarЦей підхід корисний, коли:
- Ви хочете перевірити сирий
.tarперед вилученням - Ваш конвеєр обробляє
.tarта.gzетапи окремо - Вам потрібно передати
.tarфайл іншому інструменту
Створення архіву .tar.gz
Знання того, як створювати архіви, так само важливо, як і їх розпакування. Синтаксис відображає розпакування, але використовує -c (створення) замість -x:
tar -czvf archive-name.tar.gz /path/to/directory/Виключення певних файлів або каталогів
tar -czvf archive.tar.gz /path/to/directory/ --exclude='*.log' --exclude='node_modules'Це неоціненно для створення чистих пакетів розгортання або резервних копій без непотрібного навантаження.
Автоматизація операцій .tar.gz у скриптах
На виробничих серверах — незалежно від того, чи ви використовуєте Dedicated Server або керований VPS — автоматизація операцій архівування економить час і зменшує людські помилки.
Приклад: Автоматизований скрипт резервного копіювання
#!/bin/bash
BACKUP_DIR="/var/backups"
SOURCE_DIR="/var/www/html"
DATE=$(date +%Y-%m-%d)
ARCHIVE="$BACKUP_DIR/website-backup-$DATE.tar.gz"
mkdir -p "$BACKUP_DIR"
tar -czf "$ARCHIVE" --exclude='*.tmp' "$SOURCE_DIR"
echo "Backup created: $ARCHIVE"Заплануйте це за допомогою завдання cron для повністю автоматизованого щоденного резервного копіювання:
0 2 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1Використання графічних менеджерів архівів (Опціонально)
Якщо ви працюєте в середовищі Linux desktop, графічні інструменти забезпечують альтернативу перетягування та відпускання:
| Середовище робочого столу | Менеджер архівів |
|---|---|
| GNOME | File Roller |
| KDE Plasma | Ark |
| Xfce | Thunar Archive Plugin |
Ці інструменти підтримують .tar.gz нативно та придатні для нечастого використання. Однак для адміністрування сервера командний рядок залишається найбільш надійним та придатним для скриптування підходом.
Швидкий довідник: Основні команди tar
| Завдання | Команда | |
|---|---|---|
| Розпакувати архів | tar -xvzf file.tar.gz | |
| Розпакувати в каталог | tar -xvzf file.tar.gz -C /target/ | |
| Список вмісту | tar -tvzf file.tar.gz | |
| Розпакувати один файл | tar -xvzf file.tar.gz path/to/file | |
| Створити архів | tar -czvf archive.tar.gz /source/ | |
| Моніторинг прогресу | `pv file.tar.gz | tar xzvf -` |
| Видалити компоненти шляху | tar --strip-components=1 -xvzf file.tar.gz | |
| Паралельна декомпресія | tar -I pigz -xf file.tar.gz |
Висновок
Оволодіння .tar.gz обробкою файлів виходить далеко за межі введення tar -xvzf. Розуміючи формат, переглядаючи вміст перед розпакуванням, застосовуючи прапори безпеки для ненадійних архівів та використовуючи інструменти на кшталт pv та pigz для великих файлів, ви отримуєте повний контроль над однією з найважливіших операцій Linux.
Ці навички безпосередньо застосовуються до реальних завдань: розгортання вихідного коду додатків, управління резервними копіями серверів, упакування файлів конфігурації та автоматизація рутинного обслуговування. Незалежно від того, чи ви новачок, який вивчає командний рядок, чи досвідчений адміністратор, який оптимізує робочі процеси на VPS з cPanel або на виділеному сервері, впевнена .tar.gz обробка робить ваші операції Linux швидшими, безпечнішими та надійнішими.
Якщо ви шукаєте надійне хостинг-середовище для практики цих навичок, дослідіть AlexHost VPS Hosting — з повним доступом root, SSD сховищем та гнучкими дистрибутивами Linux, готовими до будь-якого навантаження.
на всіх хостингових послугах