← Linux: инструменты
10 мин · просто · Урок 4 из 4

Архивы: tar, gzip, сжатие

Как упаковать и распаковать tar-архивы, чем архивация отличается от сжатия и какие форматы встречаются в работе.

Архивация и сжатие — разное

Две операции часто идут вместе, но делают разное:

В Linux их комбинируют: tar собирает дерево файлов в один поток, а компрессор его сжимает. Отсюда расширения вроде .tar.gz: сначала tar, потом gzip.

tar: упаковать и распаковать

Запомнить флаги tar помогает их расшифровка: c create, x extract, t list, f file (имя архива), v verbose, z через gzip.

# создать сжатый архив каталога
tar czf backup.tar.gz /var/www

# посмотреть содержимое, не распаковывая
tar tzf backup.tar.gz

# распаковать
tar xzf backup.tar.gz

# распаковать в конкретный каталог
tar xzf backup.tar.gz -C /restore

czf это «создать, сжать gzip, в файл», xzf это «извлечь, gzip, из файла». Флаг -C задаёт, куда распаковывать. Привычка сначала сделать tar tzf и посмотреть, что внутри, спасает от распаковки архива, который вывалит файлы прямо в текущий каталог.

Форматы сжатия

Компрессоры различаются скоростью и степенью сжатия:

tar умеет вызывать их флагами: z это gzip, j это bzip2, J это xz, --zstd это zstd. Современный tar часто определяет формат сам по расширению при распаковке, поэтому tar xf archive.tar.zst работает без указания компрессора.

Где это в работе

Архивы с tar встречаются постоянно: артефакты сборки из урока про CI передаются как .tar.gz, логи ротируются в сжатые файлы, бэкапы из урока про стратегии складывают в сжатые архивы. Понимать tar нужно хотя бы чтобы посмотреть и распаковать чужой архив.

Что важно запомнить

Архивация (tar) склеивает файлы в один, сохраняя структуру и права; сжатие (gzip/zstd/xz) уменьшает размер. Их комбинируют, отсюда .tar.gz.

Флаги tar: c создать, x извлечь, t посмотреть, f файл, z gzip, -C куда распаковать. Перед распаковкой чужого архива полезно глянуть содержимое через tar tzf.

gzip — стандарт, zstd быстрее при том же сжатии, xz сжимает сильнее, но медленнее. Архивы встречаются в артефактах CI, логах и бэкапах.

Этим закрывается трек linux-tools: пользователи, сеть хоста, регулярки и архивы.

Прошли материал до конца? Отметьте урок пройденным.