🐧 Linux Junior. Программирование под Linux.
3.18K subscribers
157 photos
2 videos
1 file
88 links
Канал для программистов работающих с Linux.
Почти все Python девелоперы с нами ну и другие тоже подтянутся.

По рекламе: @jannytg
@anothertechrock
Download Telegram
👩‍💻 Команда gzip в Linux

gzip — это стандартная утилита в Linux для сжатия и распаковки файлов. Она уменьшает размер файлов, экономит место и ускоряет передачу данных по сети. Поддерживает разные уровни сжатия (от -1 — быстро до -9 — максимально).

gzip применяется для уменьшения размеров логов и бэкапов, упаковки результатов сборки, сжатия данных перед передачей по сети, автоматических задач (cron, CI/CD).

В этом посте мы рассмотрим несколько сценариев использования gzip.

🐧 Сжатие с оптимизацией. Чтобы сжать файл с максимальной степенью сжатия, выполните:

gzip -9 имя_файла


Это удобно для критических случаев, где важнее уменьшить размер файла, чем скорость обработки.

🐧 Сжатие через стандартный ввод. Команда gzip может сжимать данные не только из файлов, но и через стандартный ввод. Например, можно сжать вывод другой команды:

mysqldump имя_базы_данных | gzip > backup.sql.gz


Эта команда создаст резервную копию базы данных, одновременно сжимая её, что особенно полезно для экономии места при больших базах.

🐧 Использование нескольких процессоров: pigz. Классический вариант gzip использует только одно ядро процессора для сжатия. Но можно воспользоваться параллельной версией утилиты — pigz. Эта версия распределяет задачу сжатия на несколько ядер, что значительно ускоряет процесс:

pigz имя_файла


pigz поддерживает все те же параметры, что и gzip, но работает быстрее на многоядерных системах.

🐧 Просмотр содержимого сжатого файла. Чтобы просмотреть статистику сжатого файла без его распаковки, используйте команду:

gzip -l имя_файла.gz


Вывод покажет размер до и после сжатия, степень сжатия и имя исходного файла. Для более детализированного отчета добавьте параметр -v:

gzip -lv имя_файла.gz


Это полезно для оценки эффективности сжатия файлов перед их распаковкой.

🐧 Рекурсивное сжатие/распаковка файлов. Для сжатия всех файлов в каталоге и его подкаталогах используйте рекурсивную опцию -r:

gzip -r имя_каталога


Эта команда пройдется по всей структуре каталога и сожмет каждый файл.

Чтобы распаковать все файлы в каталоге рекурсивно, используйте:

gzip -dr имя_каталога


🐧 Работа с архивами tar.gz. Часто gzip используется вместе с командой tar. Например:

tar -czf архив.tar.gz имя_каталога


Здесь -c создает архив, -z указывает на использование сжатия через gzip, а -f определяет имя файла архива.

Для распаковки архива:

tar -xzf архив.tar.gz


🐧 Пример эффективного сжатия данных

Сжать лог-файлы перед отправкой по сети:

cat /var/log/syslog | gzip -9 | nc -w 3 192.168.1.10 8888


Эта команда сжимает лог и отправляет его по сети с помощью netcat.
Please open Telegram to view this post
VIEW IN TELEGRAM
3