Формат файлів .tar.gz є широко використовуваним форматом стисненого архіву в Linux. Він поєднує в собі два процеси: tar (стрічковий архів), який збирає кілька файлів в один, і gzip, який їх стискає. Видобування файлів .tar.gz за допомогою командного рядка Linux є фундаментальною навичкою для системних адміністраторів, розробників та досвідчених користувачів. У цьому посібнику ми розглянемо різні методи ефективного розпакування .tar.gz файлів і дослідимо пов’язані з ними варіанти роботи з цими архівами.

Розуміння формату .tar.gz

Файл .tar.gz складається з:

  • .tar (стрічковий архів): Об’єднує декілька файлів в один архів без стиснення.
  • .gz (Gzip-архів): Стискає .tar-архів для зменшення його розміру.

Для розпакування таких файлів ми використовуємо команду tar, яка є універсальною утилітою для роботи зі стиснутими і нестиснутими tar-архівами.

Видобування файлів .tar.gz

Основною командою для розпакування .tar.gz файлів є

tar -xvzf archive.tar.gz

Видобування до певного каталогу

Щоб витягти вміст до певного каталогу, скористайтеся:

tar -xvzf archive.tar.gz -C /path/to/destination/

Це гарантує, що файли буде витягнуто до /шлях/до/призначення/, а не до поточного каталогу.

Видобування без докладного виводу

Для тихого видобування (без виведення назв файлів, що видобуваються):

tar -xzf archive.tar.gz

Перегляд вмісту файлу .tar.gz

Перед розпакуванням ви можете переглянути вміст архіву:

tar -tzf archive.tar.gz

У результаті буде показано список усіх файлів і каталогів всередині архіву .tar.gz без їх розпакування.

Видобування одного файлу з архіву .tar.gz

Якщо вам потрібен лише певний файл з архіву, скористайтеся командою

tar -xvzf archive.tar.gz шлях/до/файлу.txt

Це витягне лише файл path/to/file.txt, не впливаючи на інші файли в архіві.

Видобування кількох певних файлів

Щоб видобути кілька файлів, перелічіть їх через пробіли:

tar -xvzf archive.tar.gz file1.txt file2.txt

Робота з файлами .tar.gz без вилучення

Іноді вам може знадобитися знайти файл у .tar.gz архіві без його розпакування. Скористайтеся командою

tar -tzf archive.tar.gz | grep "filename"

Це відфільтрує і покаже файли, які відповідають заданому шаблону.

Видобування файлу .tar.gz від імені користувача root

У деяких випадках, особливо під час видобування системних файлів, вам можуть знадобитися привілеї суперкористувача:

sudo tar -xvzf archive.tar.gz -C /restricted/path/

Робота з великими файлами .tar.gz

Для великих архівів скористайтеся командою pv (якщо її встановлено), щоб показати хід виконання:

pv archive.tar.gz | tar -xzvf -

Також можна скористатися параметром --checkpoint:

tar --checkpoint=100 -xvzf archive.tar.gz

У результаті буде показано повідомлення після кожних 100 видобутих файлів.

Типові помилки і способи їх усунення

1. “tar: Команда не знайдена”

Якщо tar не встановлено, встановіть його за допомогою:

sudo apt install tar # Debian/Ubuntu
sudo yum install tar # CentOS/RHEL

2. “Неможливо відкрити: Немає такого файлу або каталогу”

Переконайтеся, що ви перебуваєте у правильному каталозі або вкажіть повний шлях до архіву:

tar -xvzf /full/path/to/archive.tar.gz

3. “tar: Вихід з помилкою відкладено через попередні помилки”

Зазвичай це трапляється через проблеми з правами доступу. Спробуйте виконати розархівування від імені користувача root:

sudo tar -xvzf archive.tar.gz

Висновок

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