Gymterview
junior

Как работать с архивами и сжатием в Linux?

Работа с архивами — повседневная задача при развёртывании приложений и резервном копировании.

tar — основной архиватор

Пример
# Создать архив со сжатием gzip (.tar.gz)
tar -czf archive.tar.gz directory/

# Распаковать tar.gz
tar -xzf archive.tar.gz

# Распаковать в конкретный каталог
tar -xzf archive.tar.gz -C /opt/myapp/

# Показать содержимое без распаковки
tar -tzf archive.tar.gz

Флаги tar: -c create, -x extract, -t list, -z gzip, -j bzip2, -J xz, -f file, -v verbose.

zip / unzip

Пример
sudo apt install zip unzip

zip -r archive.zip directory/     # Создать ZIP-архив
unzip archive.zip                  # Распаковать
unzip archive.zip -d /opt/myapp/  # Распаковать в каталог
unzip -l archive.zip              # Показать содержимое

gzip / gunzip — сжатие отдельных файлов

Пример
gzip file.log          # Сжать -> file.log.gz (оригинал удаляется)
gzip -k file.log       # Сжать (сохранить оригинал)
gunzip file.log.gz     # Распаковать
zcat file.log.gz       # Прочитать без распаковки

Типичные сценарии для Java-разработчика

Пример
# Распаковать дистрибутив (Tomcat, Kafka)
tar -xzf apache-tomcat-10.1.20.tar.gz -C /opt/

# Создать бэкап
tar -czf /backup/myapp-$(date +%Y%m%d).tar.gz /opt/myapp/

# JAR — это ZIP-архив
unzip -l application.jar           # Посмотреть содержимое
jar tf application.jar             # То же через jar

На собеседовании: достаточно знать tar -czf (создать) и tar -xzf (распаковать). Частая ошибка — забывать флаг -z для gzip или путать порядок флагов. Полезный факт: JAR — это ZIP-архив, его можно распаковать через unzip.