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.