Linux #Linux #Ubuntu #Терминал #Архивы #Сервер

Как распаковать и создать архив в Linux: tar.gz, zip, 7z и rar

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

20 минут 2
Архивы в Linux: tar.gz, zip, 7z и rar
Содержание
  1. 1Как распаковать tar.gz
  2. Распаковать в другую папку
  3. Посмотреть, что внутри, не распаковывая
  4. Достать один файл
  5. 2Как упаковать папку в tar.gz
  6. Какой формат выбрать: замеры
  7. Добавить файл в готовый архив
  8. 3ZIP: распаковать и создать
  9. Кракозябры вместо русских имён
  10. 47z: распаковать и создать
  11. 5RAR: как распаковать в Linux
  12. 6Если не знаете, что за архив
  13. 7Большой архив по частям
  14. 8Проверить, что архив не битый
  15. 9Шпаргалка
  16. 10Частые ошибки
  17. 11Главные советы
  18. 12Частые вопросы
  19. Как распаковать tar.gz в Linux?
  20. Чем tar отличается от tar.gz?
  21. Как распаковать rar в Ubuntu?
  22. Какой формат архива сжимает лучше всего?
  23. Как заархивировать папку с паролем в Linux?
  24. Почему после распаковки zip вместо русских имён кракозябры?
  25. Как распаковать архив, если не знаю его формат?

С архивами в 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.gz
Вывод
proekt/
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.gz
Вывод
drwxr-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

Для других алгоритмов сжатия меняется одна буква:

КлючФорматРасширение
-zgzip.tar.gz, .tgz
-Jxz.tar.xz
-jbzip2.tar.bz2
--zstdzstd.tar.zst
без ключабез сжатия.tar

Какой формат выбрать: замеры

Я упаковал одну и ту же папку на 75 МБ разными способами. Внутри — то, что обычно и бэкапят: 51 МБ кода на Python (тысячи мелких текстовых файлов), 2,6 МБ статей в Markdown и 20 МБ картинок WebP. Машина — двухъядерный сервер на Ubuntu 24.04.

КомандаРазмер архиваВремя упаковки
tar -cf (без сжатия)75 МБ0,1 с
tar --zstd -cf35 МБ0,4 с
tar -czf (gzip)36 МБ3,3 с
zip -r37 МБ3,1 с
7z a30 МБ15,4 с
tar -I 'zstd -19 -T0' -cf32 МБ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.zip
Вывод
Archive:  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        # распаковать
Вывод lsar
win2.zip: Zip
Отчёт за октябрь.docx
Фото/Дача.jpg

7z: распаковать и создать

Формат 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 proekt
Вывод
Add 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.rar
Вывод
UNRAR 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-
Вывод ls -lh
-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.zsttar -xf архив
Распаковать в папкуtar -xf архив -C папка
Посмотреть содержимое tartar -tvf архив
Упаковать в tar.gztar -czf архив.tar.gz папка
Упаковать в tar.zsttar --zstd -cf архив.tar.zst папка
Распаковать zipunzip архив.zip -d папка
Упаковать в zipzip -r архив.zip папка
Распаковать 7z7z x архив.7z
Упаковать в 7z с паролем7z a -p -mhe=on архив.7z папка
Распаковать rarunrar 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 и многое другое.

Статья помогла?

Комментарии

Пока никто не написал. Будьте первым — вопрос или свой опыт одинаково полезны.

Комментарий появится после проверки. Ссылки и реклама не публикуются.