1 min read

gzip: не только сжать файл

gzip: не только сжать файл

gzip стоит на каждой Linux-машине. Обычно его используют в одном режиме: сжать файл, разжать файл. Но у утилиты есть несколько опций, которые я регулярно применяю в работе — и о которых многие не знают.

Уровень сжатия

По умолчанию gzip использует уровень 6. Можно задать от 1 до 9:

  • 1 или --fast — быстрее, сжимает хуже
  • 9 или --best — медленнее, сжимает лучше, больше нагружает CPU

Для бэкапов, которые нужно долго хранить, ставлю максимум:

gzip -9 filename

Для оперативных задач, где важна скорость, — уровень 1.

Сжатие из стандартного ввода

gzip умеет работать не только с файлами, но и с потоком данных. Удобно для бэкапов баз данных:

mysqldump database_name | gzip > backup.sql.gz

Не нужно сначала писать дамп на диск, потом сжимать — всё одной командой.

Статистика без распаковки

Чтобы посмотреть, сколько весит исходный файл и какой процент сжатия достигнут:

gzip -l filename.gz

С подробным выводом:

gzip -lv filename.gz

Удобно, когда нужно быстро оценить архив, не трогая содержимое.

Рекурсивное сжатие

Сжать все файлы в директории рекурсивно:

gzip -r directory_name

Разжать:

gzip -dr directory_name

Каждый файл сжимается отдельно — не в один архив. Если нужен один файл, лучше использовать tar.

Работа с tar.gz

gzip часто используют вместе с tar — создать один архив из директории:

tar -czf archive.tar.gz directory_name

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

tar -xzf archive.tar.gz

Флаг -z говорит tar использовать gzip для сжатия. Это самый распространённый формат для передачи и хранения файлов на Linux.


Если хочешь обсудить похожую задачу — пиши на [email protected] или заходи на 1it.pro.

Связаться с нами
Telegram
WhatsApp
Email