15%

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

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

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

Skills
Почати
31.07.2025

Як розпакувати файл Tar у Linux: розширений посібник для досвідчених користувачів

Витягування .tar, .tar.gz, .tar.bz2 та інших форматів tarball є фундаментальною навичкою в адмініструванні систем Linux, конвеєрах DevOps та управлінні серверами. Хоча команда tar здається простою на перший погляд, досвідчені адміністратори можуть використовувати її розширені прапори, інтеграцію зі скриптами та обробку граничних випадків для досягнення хірургічної точності при роботі з архівами.

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

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

Файл .tar — скорочення від Tape Archive — це консолідований формат архіву, який об’єднує кілька файлів і каталогів в один файл, зберігаючи:

  • Структуру каталогів
  • Дозволи файлів
  • Метадані власництва
  • Часові мітки

За замовчуванням архіви .tar не стиснені. Стиснення застосовується як додатковий шар за допомогою форматів, таких як .gz, .bz2, .xz або .zst. Цей модульний дизайн дає адміністраторам точний контроль над балансом між швидкістю стиснення та коефіцієнтом.

ФорматРозширенняІнструмент стиснення
Без стиснення.tar
Gzip.tar.gz / .tgzgzip
Bzip2.tar.bz2bzip2
XZ.tar.xzxz
Zstandard.tar.zstzstd

Базові команди витягування

1. Витягнути файл .tar (без стиснення)

tar -xf archive.tar

2. Витягнути файл .tar.gz або .tgz

tar -xzf archive.tar.gz

3. Витягнути файл .tar.bz2

tar -xjf archive.tar.bz2

4. Витягнути файл .tar.xz

tar -xJf archive.tar.xz

5. Витягнути файл .tar.zst (Zstandard)

tar --use-compress-program=unzstd -xf archive.tar.zst

> Примітка: Zstandard (.zst) пропонує відмінне співвідношення швидкості до стиснення і все частіше використовується в сучасних дистрибутивах Linux та шарах образів контейнерів.

Поширені прапори та їх функції

Розуміння прапорів tar є важливим для написання надійних скриптів та обробки складних сценаріїв витягування. Нижче наведена таблиця посилань найважливіших параметрів:

ПрапорФункція
-xВитягнути файли з архіву
-fВказати файл архіву для використання
-vДетальний вивід — перелічує файли під час їх витягування
-zФільтр через стиснення gzip
-jФільтр через стиснення bzip2
-JФільтр через стиснення xz
-C <dir>Перейти до вказаного каталогу перед витягуванням
--strip-components=NВидалити N компонентів шляху на початку імен файлів
--wildcardsУвімкнути відповідність шаблонів підстановки під час витягування
--no-same-ownerНе відновлювати власництво файлів (корисно для непривілейованих користувачів)
--overwriteПерезаписати існуючі файли без запиту
--exclude=PATTERNВиключити файли, які відповідають вказаному шаблону
--ignore-zerosПропустити блоки, заповнені нулями (корисно для пошкоджених архівів)
-tПерелічити вміст архіву без витягування

Розширені приклади витягування

Витягнути в конкретний каталог

Спрямуйте витягнутий вміст до цільового шляху за допомогою прапора -C:

tar -xf archive.tar.gz -C /opt/myapp

> Цільовий каталог повинен існувати перед запуском цієї команди. Використовуйте mkdir -p /opt/myapp за потреби.

Вирівняти структуру архіву (видалити папку верхнього рівня)

Коли архів обгортає все всередину однієї папки верхнього рівня, використовуйте --strip-components для її видалення:

tar -xf archive.tar.gz --strip-components=1

Це особливо корисно при розгортанні програм безпосередньо в цільовий каталог без проміжного шару папок.

Витягнути лише конкретні файли

Ви можете витягнути окремі файли, вказавши їх шляхи так, як вони з’являються всередині архіву:

tar -xf archive.tar.gz path/to/file1 path/to/file2

Витягнути файли, які відповідають шаблону підстановки

Використовуйте --wildcards для фільтрування витягування за шаблоном:

tar -xf archive.tar.gz --wildcards '*.conf'

Це витягує лише файли конфігурації .conf з архіву — ідеально для вибіркового відновлення конфігурації без дотику до інших даних.

Виключити файли під час витягування

Виключіть конкретні файли або шаблони з витягування:

tar -xf archive.tar.gz --exclude='*.log'

Ви можете об’єднати кілька прапорів --exclude для фільтрування кількох шаблонів одночасно.

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

Використовуйте утиліту time для вимірювання часу витягування — корисно при порівнянні форматів стиснення або оптимізації робочих процесів резервного копіювання:

time tar -xf archive.tar.gz

Обробка граничних випадків

🧱 Робота з пошкодженими архівами

Якщо архів частково пошкоджений — наприклад, через переривання завантаження або помилку диска — використовуйте --ignore-zeros для пропуску пошкоджених блоків, заповнених нулями, і відновлення якомога більше даних:

tar -xzf broken.tar.gz --ignore-zeros

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

🔍 Попередній перегляд вмісту архіву перед витягуванням

Завжди перевіряйте архів перед витягуванням, особливо при роботі з ненадійними джерелами або в виробничих середовищах:

tar -tf archive.tar.gz

Це перелічує всі файли всередині архіву без запису чого-небудь на диск.

✅ Перевірка цілісності для архівів, стиснених Gzip

Переконайтеся, що архів .tar.gz не пошкоджений перед спробою витягування:

gzip -t archive.tar.gz && echo "Archive integrity OK"

Для архівів .tar.xz:

xz --test archive.tar.xz && echo "Archive integrity OK"

Включення перевірок цілісності в автоматизовані скрипти запобігає невдалим розгортанням через пошкоджені файли резервної копії.

Поради щодо скриптів для системних адміністраторів

Інтеграція tar у shell-скрипти є одним із найпотужніших способів автоматизації резервного копіювання, розгортання та відновлення робочих процесів на серверах Linux.

Автоматизований скрипт резервного копіювання

#!/bin/bash
TARGET_DIR="/var/www"
ARCHIVE="/backups/site-$(date +%F).tar.gz"

tar -czf "$ARCHIVE" -C "$TARGET_DIR" . && echo "Backup saved to $ARCHIVE"

Цей скрипт створює архів, стиснений з датою, вашого кореневого каталогу веб-сайту. Поєднайте його із завданням cron для повністю автоматизованого щоденного резервного копіювання.

Авт

15%

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

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

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

Skills
Почати