15%

Збережіть 15% на всі хостинг-послуги

Перевірте свої навички і отримайте Знижку на будь-який план хостингу

Використовуй код:

Skills
Почати
04.08.2025

Як розпакувати файл .tar.gz у Linux: повний посібник з розширеними порадами

Робота з стиснутими файлами — це щоденна реальність у будь-якому середовищі Linux. Серед найбільш широко використовуваних форматів .tar.gz, двоетапний формат, який поєднує tar для архівування та gzip для стиснення. Незалежно від того, розпаковуєте ви вихідний код програмного забезпечення, відновлюєте резервні копії або розгортаєте файли конфігурації на сервері VPS Hosting, знання того, як ефективно та безпечно працювати з архівами .tar.gz, є фундаментальною навичкою Linux.

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

Що таке файл .tar.gz?

Файл .tar.gz — часто називається tarball — створюється в два етапи:

  1. tar об’єднує кілька файлів і каталогів в один архів (.tar)
  2. gzip стискає цей архів, щоб зменшити його розмір (.tar.gz або .tgz)

Типові випадки використання

  • Розповсюдження вихідного коду програмного забезпечення
  • Упакування файлів конфігурації та резервних копій
  • Архівування файлів журналу для довгострокового зберігання
  • Передача великих дерев каталогів між серверами

Приклад імені файлу: project-files.tar.gz

Базова команда розпакування

Стандартна команда для розпакування файлу .tar.gz це:

tar -xvzf file.tar.gz

Розбір прапорців

ПрапорецьЗначення
-xРозпакувати файли з архіву
-vРежим verbose — виводить список кожного файлу під час розпакування
-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

Ці практики особливо критичні на спільній інфраструктурі. Якщо ви керуєте кількома сайтами або клієнтами, розгляньте можливість використання середовищ Shared Web Hosting зі строгими межами дозволів.

Ефективна робота з великими архівами

Для архівів, які займають кілька гігабайт, стандартне розпакування може здаватися чорною скринею. Ці методи покращують видимість і продуктивність.

Моніторинг прогресу за допомогою pv

pv (pipe viewer) відображає прогрес у реальному часі та швидкість передачі:

pv file.tar.gz | tar xzvf -

Встановіть pv якщо він ще не доступний:

# Debian/Ubuntu
sudo apt install pv

# CentOS/RHEL/AlmaLinux
sudo dnf install pv

Вимкнення режиму verbose для швидшого розпакування

При розпакуванні дуже великих архівів прапорець -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 (create) замість -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

Використання графічних менеджерів архівів (необов’язково)

15%

Збережіть 15% на всі хостинг-послуги

Перевірте свої навички і отримайте Знижку на будь-який план хостингу

Використовуй код:

Skills
Почати