Архивы: tar, gzip, сжатие
Как упаковать и распаковать tar-архивы, чем архивация отличается от сжатия и какие форматы встречаются в работе.
Архивация и сжатие — разное
Две операции часто идут вместе, но делают разное:
- Архивация склеивает много файлов и каталогов в один файл, сохраняя
структуру и права. Этим занимается
tar. Сам по себе tar не уменьшает размер. - Сжатие уменьшает размер данных. Этим занимаются
gzip,bzip2,zstd,xz. Они сжимают один поток или файл.
В 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 и посмотреть, что внутри, спасает от распаковки архива, который
вывалит файлы прямо в текущий каталог.
Форматы сжатия
Компрессоры различаются скоростью и степенью сжатия:
- gzip (
.gz) — стандарт по умолчанию: быстрый, везде есть. - zstd (
.zst) современный: сжимает не хуже gzip, но заметно быстрее; его всё чаще берут по умолчанию. - xz (
.xz) сжимает сильнее, но медленнее; для архивов, которые лежат долго и редко распаковываются.
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: пользователи, сеть хоста, регулярки и архивы.
Прошли материал до конца? Отметьте урок пройденным.
Прогресс сохранён в этом браузере
Почистишь историю или откроешь с телефона, и отметки пропадут. Оставь почту, они переедут в аккаунт. Пароль придумывать не нужно.
Готово. теперь в аккаунте: прогресс виден с любого устройства. Мой прогресс