Как распаковать и создать архив в Linux: tar.gz, zip, 7z и rar
Как в терминале Linux распаковать tar.gz, tar.xz, zip, 7z и rar, посмотреть содержимое архива и достать один файл. Как упаковать папку, какой формат сжимает лучше и быстрее — замеры на реальной папке. И что делать с кракозябрами в именах.

Содержание
- 1Как распаковать tar.gz
- Распаковать в другую папку
- Посмотреть, что внутри, не распаковывая
- Достать один файл
- 2Как упаковать папку в tar.gz
- Какой формат выбрать: замеры
- Добавить файл в готовый архив
- 3ZIP: распаковать и создать
- Кракозябры вместо русских имён
- 47z: распаковать и создать
- 5RAR: как распаковать в Linux
- 6Если не знаете, что за архив
- 7Большой архив по частям
- 8Проверить, что архив не битый
- 9Шпаргалка
- 10Частые ошибки
- 11Главные советы
- 12Частые вопросы
- Как распаковать tar.gz в Linux?
- Чем tar отличается от tar.gz?
- Как распаковать rar в Ubuntu?
- Какой формат архива сжимает лучше всего?
- Как заархивировать папку с паролем в Linux?
- Почему после распаковки zip вместо русских имён кракозябры?
- Как распаковать архив, если не знаю его формат?
С архивами в Linux сталкиваются все и сразу: программа скачалась как .tar.gz, бэкап сайта приехал в .zip, коллега прислал .rar, а на сервере нужно упаковать папку перед переносом. В графической оболочке хватает двойного щелчка, но на сервере есть только терминал — и команда tar с её буквами-ключами пугает почти каждого новичка.
На самом деле запомнить нужно две команды: одну для распаковки и одну для упаковки. Всё остальное — вариации. Ниже — по порядку для каждого формата, плюс замеры: какой формат сжимает лучше и сколько это стоит по времени.
Все команды проверены на Ubuntu 24.04, работают так же в Debian и Linux Mint.
Как распаковать tar.gz
Самый частый формат в Linux — .tar.gz (он же .tgz). Распаковать его в текущую папку:
tar -xf proekt.tar.gzБуквы ключей читаются так: x — extract, извлечь; f — file, дальше идёт имя файла. Тип сжатия указывать не нужно: современный tar сам понимает, gzip это, xz, bzip2 или zstd. Поэтому одна и та же команда открывает .tar.gz, .tar.xz, .tar.bz2 и .tar.zst.
Во многих инструкциях вы встретите длинный вариант tar -xzvf. Он тоже правильный: z явно говорит «это gzip», а v (verbose) выводит список распакованных файлов:
tar -xzvf proekt.tar.gzproekt/
proekt/run.sh
proekt/foto/
proekt/foto/desktop.webp
proekt/docs/
proekt/docs/tmux.md
proekt/docs/plan.txtРаспаковать в другую папку
По умолчанию tar распаковывает туда, где вы находитесь. Чтобы выбрать папку, добавьте -C:
mkdir -p ~/restore
tar -xf proekt.tar.gz -C ~/restoreПапку нужно создать заранее. Если её нет, tar не создаст её сам, а остановится с ошибкой:
tar: out2: Cannot open: No such file or directory
tar: Error is not recoverable: exiting nowПосмотреть, что внутри, не распаковывая
Прежде чем распаковывать незнакомый архив, полезно заглянуть внутрь. Ключ t выводит список файлов, вместе с v — с правами, владельцем, размером и датой:
tar -tvf proekt.tar.gzdrwxr-xr-x root/root 0 2026-10-27 22:40 proekt/
-rwxr-xr-x root/root 8 2026-10-27 22:40 proekt/run.sh
drwxr-xr-x root/root 0 2026-10-27 22:40 proekt/foto/
-rw-r--r-- root/root 19324 2026-10-27 22:40 proekt/foto/desktop.webp
drwxr-xr-x root/root 0 2026-10-27 22:40 proekt/docs/
-rw-r--r-- root/root 43615 2026-10-27 22:40 proekt/docs/tmux.md
-rw-r--r-- root/root 20 2026-10-27 22:40 proekt/docs/plan.txtЭто особенно важно для архивов «из интернета»: некоторые из них высыпают сотню файлов прямо в текущую папку, без общей папки внутри. Если первая строка списка — не папка, распакуйте такой архив в отдельный каталог через -C.
Достать один файл
Не обязательно распаковывать весь архив ради одного файла. Укажите путь к нему так, как он записан в списке tar -tf:
tar -xf proekt.tar.gz proekt/docs/plan.txtМожно и по маске — например, все Markdown-файлы:
tar -xf proekt.tar.gz --wildcards '*.md'Как упаковать папку в tar.gz
Команда для упаковки отличается одной буквой: вместо x — c (create):
tar -czf proekt.tar.gz proektЗдесь z — сжать gzip. Порядок важен: сначала имя архива, потом что упаковываем. Я проверил, что бывает, если перепутать. Если первым стоит имя папки, tar просто выдаст ошибку Cannot open: Is a directory. А если первым оказался существующий файл, например tar -czf notes.txt proekt, tar молча запишет архив поверх этого файла — и содержимое notes.txt пропадёт.
Упаковать несколько папок и файлов сразу:
tar -czf backup.tar.gz /etc/nginx /var/www/site notes.txtИсключить лишнее — кэш, логи, node_modules:
tar -czf site.tar.gz --exclude='site/cache' --exclude='*.log' siteДля других алгоритмов сжатия меняется одна буква:
| Ключ | Формат | Расширение |
|---|---|---|
-z | gzip | .tar.gz, .tgz |
-J | xz | .tar.xz |
-j | bzip2 | .tar.bz2 |
--zstd | zstd | .tar.zst |
| без ключа | без сжатия | .tar |
Какой формат выбрать: замеры
Я упаковал одну и ту же папку на 75 МБ разными способами. Внутри — то, что обычно и бэкапят: 51 МБ кода на Python (тысячи мелких текстовых файлов), 2,6 МБ статей в Markdown и 20 МБ картинок WebP. Машина — двухъядерный сервер на Ubuntu 24.04.
| Команда | Размер архива | Время упаковки |
|---|---|---|
tar -cf (без сжатия) | 75 МБ | 0,1 с |
tar --zstd -cf | 35 МБ | 0,4 с |
tar -czf (gzip) | 36 МБ | 3,3 с |
zip -r | 37 МБ | 3,1 с |
7z a | 30 МБ | 15,4 с |
tar -I 'zstd -19 -T0' -cf | 32 МБ | 18,7 с |
tar -cJf (xz) | 31 МБ | 38,0 с |
Распаковка тоже отличается: tar.gz открылся за 0,7 секунды, tar.xz — за 2,0, а tar.zst — за 0,2.
Выводы из этой таблицы такие:
- ⚡ zstd — лучший выбор для бэкапов. Сжимает как gzip, но почти в десять раз быстрее. Его понимает tar в любом современном дистрибутиве.
- 📦 gzip — для обмена. Его откроет любая система, даже очень старая, и любой архиватор на Windows и macOS.
- 🗜️ xz и 7z — когда важен каждый мегабайт. Архив на 15–17 % меньше, но упаковка в 10–100 раз дольше. Имеет смысл для файлов, которые выкладывают для скачивания много раз.
- 🖼️ Картинки и видео почти не сжимаются. JPEG, WebP, MP4 уже сжаты, архиватор с ними просто тратит время. Если в папке в основном фото, используйте
tar -cfбез сжатия или zstd.
Добавить файл в готовый архив
В несжатый .tar можно дописывать файлы ключом r:
tar -rvf backup.tar proekt/run.shСо сжатыми архивами (.tar.gz, .tar.xz) так не получится — их придётся пересоздать.
ZIP: распаковать и создать
ZIP удобен, когда архив уйдёт на Windows или Mac: там он открывается без программ. В Ubuntu Desktop zip и unzip обычно уже стоят, на сервере их ставят одной командой:
sudo apt install zip unzipРаспаковать в текущую папку или в указанную:
unzip archive.zip
unzip archive.zip -d ~/restoreВ отличие от tar, unzip -d создаёт папку сам, если её нет.
Посмотреть содержимое:
unzip -l proekt.zipArchive: proekt.zip
Length Date Time Name
--------- ---------- ----- ----
0 2026-10-27 22:40 proekt/
8 2026-10-27 22:40 proekt/run.sh
0 2026-10-27 22:40 proekt/foto/
19324 2026-10-27 22:40 proekt/foto/desktop.webp
0 2026-10-27 22:40 proekt/docs/
43615 2026-10-27 22:40 proekt/docs/tmux.md
20 2026-10-27 22:40 proekt/docs/plan.txt
--------- -------
62967 7 filesУпаковать папку — обязательно с ключом -r, иначе в архив попадёт только пустая папка без содержимого:
zip -r proekt.zip proekt adding: proekt/ (stored 0%)
adding: proekt/run.sh (stored 0%)
adding: proekt/foto/ (stored 0%)
adding: proekt/foto/desktop.webp (deflated 0%)
adding: proekt/docs/ (stored 0%)
adding: proekt/docs/tmux.md (deflated 72%)
adding: proekt/docs/plan.txt (stored 0%)Обратите внимание на проценты: текст статьи сжался на 72 %, а картинка WebP — на 0 %. Это наглядно к выводам из таблицы выше.
Архив с паролем — ключ -e, пароль zip спросит дважды:
zip -er secret.zip documentsКракозябры вместо русских имён
Если архив создан на Windows старой программой, имена файлов внутри могут оказаться в кодировке CP866. После распаковки вместо «Отчёт за октябрь.docx» получаются знаки вопроса. В моей проверке unzip из Ubuntu 24.04 сам угадал кодировку у архива, помеченного как созданный в Windows. А вот когда метки нет, имена превратились в мусор.
Надёжнее всего в этом случае помогает unar — он определяет кодировку сам:
sudo apt install unar
lsar archive.zip # посмотреть список
unar archive.zip # распаковатьwin2.zip: Zip
Отчёт за октябрь.docx
Фото/Дача.jpg7z: распаковать и создать
Формат 7-Zip сжимает лучше всех из привычных и умеет нормальное шифрование. В Ubuntu 24.04 он ставится пакетом 7zip (в старых версиях — p7zip-full):
sudo apt install 7zipРаспаковать с сохранением папок — ключ x:
7z x archive.7z
7z x archive.7z -o/home/user/restoreОбратите внимание: после -o нет пробела. Есть ещё ключ e, но он вытаскивает все файлы в одну кучу без папок — почти никогда это не то, что нужно.
Упаковать:
7z a proekt.7z proektAdd new data to archive: 3 folders, 4 files, 62967 bytes (62 KiB)
Files read from disk: 4
Archive size: 30878 bytes (31 KiB)
Everything is OkС паролем и зашифрованными именами файлов — чтобы без пароля нельзя было даже посмотреть список:
7z a -p -mhe=on secret.7z documentsПосмотреть содержимое — 7z l archive.7z.
RAR: как распаковать в Linux
RAR — закрытый формат, поэтому с ним больше всего путаницы. В репозиториях Ubuntu есть два пакета с почти одинаковым названием:
- ✅
unrar— официальная программа от автора RAR (раздел multiverse). Открывает всё, включая современный RAR5. - ⚠️
unrar-free— свободная замена. Старые архивы открывает, а на RAR5 молча пропускает файлы.
Я проверил это на архиве RAR5. unrar-free написал «All OK», но вместо распаковки вывел строки Skipping с мусором вместо имён — и ничего не распаковал. Официальный unrar открыл тот же архив без проблем:
sudo apt install unrar
unrar x archive.rarUNRAR 7.00 freeware Copyright (c) 1993-2024 Alexander Roshal
Extracting from proekt.rar
Creating proekt OK
Extracting proekt/run.sh OK
Extracting proekt/foto/desktop.webp OK
Extracting proekt/docs/tmux.md OK
Extracting proekt/docs/plan.txt OK
All OKКлюч x сохраняет папки, e — снова «всё в одну кучу». Посмотреть список — unrar l archive.rar.
Если unrar ставить не хочется, есть два других пути:
- 📦 7z с модулем RAR. Установите пакет
7zip-rar, и7z x archive.rarначнёт открывать RAR. Без этого пакета 7z на RAR выдаёт ошибку. - 🧰 unar. Тот же, что выручает с кракозябрами в ZIP. RAR5 он распаковал у меня без проблем.
Создавать RAR в Linux тоже можно — программой rar из multiverse, но смысла мало: 7z и zip открываются везде, бесплатно и без лицензий.
Если не знаете, что за архив
Расширение может врать или вовсе отсутствовать. Команда file смотрит на содержимое, а не на имя:
file proekt.*proekt.7z: 7-zip archive data, version 0.4
proekt.rar: RAR archive data, v5
proekt.tar.gz: gzip compressed data, from Unix, original size modulo 2^32 71680
proekt.zip: Zip archive data, at least v1.0 to extract, compression method=storeУниверсальный вариант на все случаи — unar: он открывает zip, rar, 7z, tar.* и ещё десятки форматов одной командой unar файл.
Большой архив по частям
Чтобы переслать архив, который не пролезает в ограничение почты или облака, его можно порезать на куски. Упаковываем и сразу режем по 10 МБ:
tar -czf - big-folder | split -b 10M - big.tar.gz.part--rw-r--r-- 1 root root 10M Oct 27 22:40 big.tar.gz.part-aa
-rw-r--r-- 1 root root 10M Oct 27 22:40 big.tar.gz.part-ab
-rw-r--r-- 1 root root 10M Oct 27 22:40 big.tar.gz.part-ac
-rw-r--r-- 1 root root 5.0K Oct 27 22:40 big.tar.gz.part-adСобрать и распаковать обратно:
cat big.tar.gz.part-* | tar -xzf -Дефис вместо имени файла означает «читать из стандартного ввода» — то есть из того, что передал cat.
Проверить, что архив не битый
Перед тем как удалять исходники после бэкапа, проверьте архив. tar.gz проверяется прочтением списка — если файл повреждён, будет ошибка:
tar -tzf backup.tar.gz > /dev/null && echo OKДля zip — unzip -t archive.zip, для 7z — 7z t archive.7z, для rar — unrar t archive.rar.
Шпаргалка
| Задача | Команда |
|---|---|
| Распаковать tar.gz, tar.xz, tar.zst | tar -xf архив |
| Распаковать в папку | tar -xf архив -C папка |
| Посмотреть содержимое tar | tar -tvf архив |
| Упаковать в tar.gz | tar -czf архив.tar.gz папка |
| Упаковать в tar.zst | tar --zstd -cf архив.tar.zst папка |
| Распаковать zip | unzip архив.zip -d папка |
| Упаковать в zip | zip -r архив.zip папка |
| Распаковать 7z | 7z x архив.7z |
| Упаковать в 7z с паролем | 7z a -p -mhe=on архив.7z папка |
| Распаковать rar | unrar x архив.rar |
| Узнать тип архива | file архив |
Частые ошибки
- 🔁 Перепутан порядок в
tar -czf. Сначала имя нового архива, потом папка. Если первым указать существующий файл, tar перезапишет его архивом. - 📁
zipбез-r. В архиве окажется пустая папка. - 🧺
7z eиunrar eвместоx. Все файлы высыпаются в одну папку без структуры, одинаковые имена перезаписывают друг друга. - 🐌 xz для ежедневного бэкапа. Сервер полминуты занят сжатием, а выигрыш — несколько мегабайт. Берите zstd.
- 🧩 unrar-free вместо unrar. RAR5 он не распакует. Ставьте
unrarили7zip-rar.
Главные советы
- Запомните одну команду.
tar -xf архивраспаковывает любой tar-архив, тип сжатия tar определит сам. - Сначала посмотрите внутрь.
tar -tf,unzip -lили7z lпокажут, не высыплется ли архив кучей файлов в текущую папку. - Бэкапы — в zstd. Сжимает как gzip, а работает почти в десять раз быстрее.
- Для Windows и Mac — zip. Его откроют без установки программ.
- Пароль — только в 7z. Шифрование классического ZIP слабое.
- Проверяйте архив перед удалением исходников.
tar -tzf … > /dev/null,unzip -t,7z t.
Частые вопросы
Как распаковать tar.gz в Linux?
Командой tar -xf файл.tar.gz. Чтобы распаковать в определённую папку, добавьте -C папка — её нужно создать заранее. Длинный вариант tar -xzvf делает то же самое и выводит список файлов.
Чем tar отличается от tar.gz?
.tar — это просто склейка файлов в один без сжатия, она сохраняет права и структуру папок. .tar.gz — тот же tar, сжатый gzip. Поэтому в Linux архивы почти всегда двойные: tar отвечает за файлы, а gzip, xz или zstd — за сжатие.
Как распаковать rar в Ubuntu?
Установите официальный unrar (sudo apt install unrar) и выполните unrar x файл.rar. Пакет unrar-free не открывает современные архивы RAR5. Другой вариант — пакет 7zip-rar и команда 7z x файл.rar.
Какой формат архива сжимает лучше всего?
Из распространённых — 7z и tar.xz. В моих замерах они сделали архивы на 15–17 % меньше, чем gzip, но упаковывали в 5–10 раз дольше. Для бэкапов разумнее zstd: размер как у gzip, скорость в разы выше.
Как заархивировать папку с паролем в Linux?
7z a -p -mhe=on архив.7z папка — 7z спросит пароль и зашифрует и содержимое, и имена файлов по AES-256. У tar своего шифрования нет, а пароль в ZIP (zip -er) защищает слабо.
Почему после распаковки zip вместо русских имён кракозябры?
Архив создан программой, которая записала имена в кодировке Windows и не указала её. Распакуйте его через unar archive.zip — эта программа определяет кодировку сама. Установка: sudo apt install unar.
Как распаковать архив, если не знаю его формат?
Посмотрите тип командой file архив — она определяет формат по содержимому, а не по расширению. Или сразу используйте unar архив: он понимает zip, rar, 7z, все варианты tar и многое другое.
Если статья пригодилась — отметьте, это помогает выбирать темы
Статья помогла?
Комментарии
Пока никто не написал. Будьте первым — вопрос или свой опыт одинаково полезны.