Как распаковать архив tar.gz и zip в Linux и как упаковать папку
Архивы на сервере нужны, чтобы залить сайт одним файлом, сделать копию папки перед правкой или забрать журналы. Распаковка tar.gz, tar.xz и tar.bz2 — одна и та же команда, для zip — своя. Ниже — обе и то, как не высыпать файлы не туда.
Содержание 8
Что сделать прямо сейчас
- Перейдите в папку, где лежит архив:
cd ~или другой путь — как ходить по папкам. - Посмотрите, что внутри:
tar -tf archive.tar.gzилиunzip -l archive.zip. - Создайте папку для файлов:
mkdir -p ~/unpacked. - Распакуйте в неё:
tar -xf archive.tar.gz -C ~/unpackedилиunzip archive.zip -d ~/unpacked. - Проверьте результат:
ls -la ~/unpacked.
Какой командой распаковать
| Файл | Распаковать | Посмотреть, что внутри |
|---|---|---|
.tar.gz или .tgz | tar -xf archive.tar.gz | tar -tf archive.tar.gz |
.tar.xz | tar -xf archive.tar.xz | tar -tf archive.tar.xz |
.tar.bz2 | tar -xf archive.tar.bz2 | tar -tf archive.tar.bz2 |
.tar | tar -xf archive.tar | tar -tf archive.tar |
.zip | unzip archive.zip | unzip -l archive.zip |
Тип сжатия при распаковке tar определяет сам — ключи -z, -J или -j для этого не нужны. Ключ -f обязателен: за ним идёт имя архива.
Распаковка tar: ключи
| Ключ | Что делает |
|---|---|
-x | распаковать |
-t | показать список файлов, ничего не распаковывая |
-f archive.tar.gz | с каким архивом работать |
-v | выводить имена файлов по ходу работы |
-C папка | распаковать в эту папку, а не в текущую |
-k | не заменять файлы, которые уже есть |
Без -C файлы появятся в той папке, где вы сейчас. Папка из -C должна уже существовать — создайте её командой mkdir -p.
Сначала посмотрите, что внутри
В одних архивах все файлы лежат в одной папке, в других — россыпью. Команда tar -tf покажет пути. Если они начинаются с одного имени, например site/, после распаковки появится одна папка site. Если нет — файлы окажутся прямо в текущей папке, поэтому распаковывайте такой архив в отдельную, через -C.
Без -k tar заменяет файлы с теми же именами. Распаковывать новый архив поверх работающего сайта опасно: сначала сделайте копию — как, показано ниже.
Распаковка zip
| Команда | Что сделает |
|---|---|
unzip archive.zip | распакует в текущую папку |
unzip archive.zip -d ~/unpacked | распакует в указанную папку |
unzip -l archive.zip | покажет список файлов, их размер и дату |
unzip -n archive.zip | пропустит файлы, которые уже есть |
Если файл с таким именем уже есть, unzip спросит, что делать: заменить этот файл или все сразу, пропустить этот или все, или сохранить под другим именем.
Если терминал отвечает, что команды unzip нет, установите её: sudo apt install unzip. Что делать с похожей ошибкой у других команд — sudo: command not found.
Как упаковать папку в архив
| Команда | Что сделает |
|---|---|
tar -czf site.tar.gz site | архив tar.gz из папки site |
tar -cJf site.tar.xz site | архив tar.xz |
tar -caf site.tar.xz site | tar выберет сжатие по окончанию имени |
zip -r site.zip site | архив zip |
Первым после ключа f пишут имя нового архива, потом — что в него положить. Если перепутать порядок, tar ответит ошибкой или запишет не то. Папки tar и zip -r кладут целиком, со скрытыми файлами вроде .htaccess.
Архив папки сайта перед правкой
sudo tar -czf ~/example.com-2026-10-11.tar.gz -C /var/www example.com-C /var/www— tar перейдёт в /var/www, и внутри архива пути начнутся сexample.com/, без/var/www.- Архив ляжет в домашнюю папку —
~. Дата в имени поможет не перепутать копии. sudoнужен, если в папке сайта есть файлы, которые ваш пользователь не может прочитать.- Проверьте, что всё попало:
tar -tf ~/example.com-2026-10-11.tar.gz | head.
Архив на том же сервере не спасёт, если сервер сломается. Как хранить копии в другом месте — Резервные копии сайта.
Ошибки и как их исправить
| Что случилось | Причина | Что сделать |
|---|---|---|
No such file or directory | нет архива или папки из -C | проверьте имя ls, создайте папку mkdir -p |
Permission denied | нет прав писать в папку назначения | распакуйте в домашнюю папку или добавьте sudo — Permission denied в Linux |
No space left on device | на диске закончилось место | No space left on device |
| файлы высыпались в текущую папку | в архиве нет общей папки | в следующий раз — -tf, затем -C |
Источники
- Справка tar для Ubuntu 24.04 — ключи -c, -x, -t, -f, -z, -j, -J, -a, -C и -v.
- Руководство GNU tar: Creating and Reading Compressed Archives — при распаковке тип сжатия tar определяет сам.
- Справка zip для Ubuntu 24.04 — ключ -r для папок.
- Справка unzip для Ubuntu 24.04 — ключи -l и -d.
Сверено 11 октября 2026 года.
Что почитать дальше
- cp, mv, rm и mkdirкопировать и удалять файлы.
- Резервные копии сайтагде хранить копии сайта.
- ls, cd и pwdкак перейти в нужную папку.
- No space left on deviceесли архив не поместился.
Проверено и обновлено: 11.10.2026