Распаковка архивов в консоли Linux: команды tar -xzf и unzip
Вы скачали исходный код программы, бэкап базы данных или дистрибутив сайта в формате архива .tar.gz или .zip, но не знаете правильные ключи и команды для их распаковки в терминале Linux.
1. Распаковка архивов `.tar.gz` и `.tgz` (команда tar)
Формат .tar.gz — самый популярный стандарт сжатия в мире Linux.
tar -xzvf archive.tar.gzРазбор ключей команды tar:
-x(eXtract) — извлечь файлы из архива;-z(gzip) — разархивировать сжатие алгоритмом gzip;-v(verbose) — показывать на экране список извлекаемых файлов (можно убрать, если вывод не нужен);-f(file) — указать имя файла архива (всегда пишется последним!).
Распаковать архив в другую конкретную папку (флаг -C):
sudo tar -xzf archive.tar.gz -C /var/www/html/2. Распаковка стандартных `.zip` архивов (команда unzip)
Если утилита unzip не установлена, установите ее:
sudo apt install unzip -y- Распаковать в текущую папку:
unzip archive.zip - Распаковать в определенную папку (флаг
-d):unzip archive.zip -d /opt/my_program/
3. Шпаргалка по другим типам архивов
- .tar.bz2 / .tbz2:
tar -xjvf archive.tar.bz2 - .tar.xz:
tar -xJvf archive.tar.xz - .tar (без сжатия):
tar -xvf archive.tar - .gz (одиночный файл):
gunzip filename.gz
Частые вопросы (FAQ)
Как посмотреть содержимое архива .tar.gz без его распаковки на диск?
Используйте ключ -t (list): tar -ztvf archive.tar.gz. Система выведет полный список файлов внутри архива.
Как запаковать папку в архив .tar.gz?
Используйте ключ -c (create): tar -czvf my_backup.tar.gz /path/to/folder.
Что делать, если при распаковке zip русские буквы в именах файлов превращаются в кракозябры?
Укажите кодировку CP866 или Windows-1251 с помощью ключа -O: unzip -O CP866 archive.zip.
В чем разница между утилитами tar и gzip?
Утилита tar только объединяет множество файлов и папок в один общий файл (контейнер), но не сжимает его. Утилита gzip сжимает данные. Формат .tar.gz объединяет оба процесса.