Добавить в корзинуПозвонить
Найти в Дзене
UFO.Hosting

Работаем с архивами в Linux без проблем

Многое ПО для Linux распространяется в виде архивов. В графических оболочках KDE или GNOME двойного щелчка по файлу обычно достаточно — всё распакуется само. Но в консоли новички нередко теряются: то флаги непонятные, то имена файлов в пути «ломаются». В этом гайде мы спокойно и понятно разберемся, чем отличаются tar, gzip и zip/unzip, как быстро распаковать присланный архив и как аккуратно собрать свой. Воспользуйтесь промокодом DZEN и получите скидку на заказ виртуальных и выделенных серверов UFO.Hosting. Активируйте код при оформлении услуги и обеспечьте своим проектам стабильную и мощную платформу для роста. Для начала разберемся в названиях утилит: Самый частый сценарий — это распаковка файла, который вам прислали. Такие команды закрывают 99% задач по архивам. Мы рассмотрим самые основные. → Для быстрой распаковки используйте следующее: tar -xzf archive.tar.gz Где: -x — распаковать, -z — использовать gzip, -f — работать с файлом (имя сразу после флага). → Хотите распаковать в конк
Оглавление

Многое ПО для Linux распространяется в виде архивов. В графических оболочках KDE или GNOME двойного щелчка по файлу обычно достаточно — всё распакуется само. Но в консоли новички нередко теряются: то флаги непонятные, то имена файлов в пути «ломаются».

В этом гайде мы спокойно и понятно разберемся, чем отличаются tar, gzip и zip/unzip, как быстро распаковать присланный архив и как аккуратно собрать свой.

Воспользуйтесь промокодом DZEN и получите скидку на заказ виртуальных и выделенных серверов UFO.Hosting. Активируйте код при оформлении услуги и обеспечьте своим проектам стабильную и мощную платформу для роста.

Кто есть кто

Для начала разберемся в названиях утилит:

  • tar — «собиратель»: пакует множество файлов и папок в один поток/файл без сжатия. Отсюда расширение .tar.
  • gzip — «сжиматель»: уменьшает размер одного файла. Поэтому набор из тысяч файлов сначала сводят в один tar, а уже его сжимают gzip — получаем .tar.gz (или .tgz).
  • zip / unzip — формат и утилиты, которые и собирают, и сжимают сразу. Для распаковки чаще всего применяют unzip.

База по быстрой распаковке

Самый частый сценарий — это распаковка файла, который вам прислали. Такие команды закрывают 99% задач по архивам. Мы рассмотрим самые основные.

Как работать с .tar

→ Для быстрой распаковки используйте следующее:

tar -xzf archive.tar.gz

Где:

-x — распаковать,

-z — использовать gzip,

-f — работать с файлом (имя сразу после флага).

→ Хотите распаковать в конкретную папку? Тогда введите терминал команду:

tar -xzf archive.tar.gz -C /opt/myapp

→ Если вы хотите сначала посмотреть, что находится в архиве скопируйте в консоль следующую команду:

tar -tzf archive.tar.gz

Как работать с .zip

→ быстрая распаковка в текущую директорию:

unzip archive.zip

→ распаковка в указанную директорию:

unzip archive.zip -d /opt/myapp

→ посмотреть содержимое без распаковки:

unzip -l archive.zip

Погружаемся глубже в работу с архивами

С базовыми функциями мы разобрались, поэтому самое время посмотреть на то, что еще могут утилиты.

Tar: собрать, распаковать, посмотреть

→ Создать архив из папки:

tar -cf project.tar project/

→ Добавим сжатие gzip и прогресс:

tar -czvf project.tar.gz project/

Где

-c — создать,

-z — gzip,

v — показывать имена,

-f — имя файла архива.

→ Распаковать часть архива:

tar -xzf project.tar.gz project/docs/README.md

→ Исключить лишнее при упаковке:

tar -czf project.tar.gz project/ --exclude='*.log' --exclude='project/tmp/*'

Пара слов о правах доступа. Tar по умолчанию сохраняет разрешения и ссылки. Если распаковываете под root и хотите сохранить владельцев и режимы как в архиве, добавьте:

sudo tar -xzf project.tar.gz -C /opt/myapp --same-owner -p

Gzip: сжать и проверить

→ Сжать крупный лог:

gzip big.log # получится big.log.gz и исходник исчезнет

→ Оставить исходный файл:

gzip -k big.log # keep — сохранит big.log и создаст big.log.gz

→ Распаковать обратно:

gunzip big.log.gz

→ Проверить целостность .gz без распаковки:

gzip -t big.log.gz

Важно: gzip сжимает только один файл. Чтобы уменьшить папку, сначала делаем tar, потом gzip.

Unzip: особенности ZIP-архивов

→ Распаковать:

unzip archive.zip

→ Переопределить каталог назначения:

unzip archive.zip -d ./target

→ Если в папке уже есть такие файлы, unzip спросит, перезаписывать ли. Чтобы перезаписать молча:

unzip -o archive.zip -d ./target # o = overwrite

→ Чтобы никогда не перезаписывать:

unzip -n archive.zip -d ./target # n = never overwrite

→ Проверка архива:

unzip -t archive.zip

К сожалению, старые ZIP-архивы с Windows могут «ломать» кириллицу в именах. Если видите «кракозябры», попробуйте явно указать кодировку:

unzip -O utf8 archive.zip

# Иногда помогает cp866 или windows-1251

unzip -O cp866 archive.zip

Безопасность и аккуратность

1. Сначала смотрим, потом распаковываем. Для tar — tar -tzf, для zip — unzip -l. Так вы точно понимаете, что окажется в системе.

2. Распаковывайте в пустую директорию через -C или -d. Это снижает риск перезаписи похожих имён.

3. Доверяйте источнику. Архив — это не исполняемый файл, но внутри могут лежать скрипты установки. Читайте README и проверяйте команды, особенно если запускаете от root.

4. Следите за путями. Tar умеет хранить абсолютные пути, но приличные архивы их не используют. Если видите что-то вроде /usr/local/bin/... — лучше распаковать в временную папку и перенести нужное вручную.

Итог

Tar отвечает за упаковку множества объектов в единое целое, gzip — за сжатие, а unzip помогает работать с ZIP-архивами. Зная несколько базовых флагов и привычку сначала «заглядывать внутрь», вы без труда справитесь с любыми архивами в терминале.