Сжатие очень полезно при резервном копировании важных файлов, а также если вам нужно отправить большой файл через Интернет.
Обратите внимание, что сжатие уже сжатого файла может подействовать не так как вы хотите, и в результате вы получите файл большего размера. Таким образом, не используйте сжатие сжатого файла.
Существует множество программ для сжатия и распаковки файлов в GNU/Linux. В этой статье вы узнаете только о двух из них.
Сжатие и распаковка файлов с помощью GZIP и BZIP2
Наиболее распространенными программами, используемыми для сжатия файлов в Unix-подобных системах, являются GZIP и BZIP2
Сжатие и распаковка файлов с помощью программы Gzip
Gzip — это утилита для сжатия и распаковки файлов с использованием алгоритма Lempel-Ziv (LZ77).
Сжатие файлов с помощью GZip
Чтобы сжать файл с именем test.txt, заменив его сжатой версией gzipped, откройте терминал и введите следующую команду:
gzip test.txt
Gzip заменит исходный файл test.txt сжатой версией с именем test.txt.gz.
Сжатие файла и запись его в другой файл
По умолчанию программа gzip сжимает данный файл, заменяя его сжатой версией gzipped. Однако вы можете сохранить исходный файл и записать его в другой файл. Например, следующая команда, сжимает test.txt и записывает вывод в output.txt.gz.
gzip -c test.txt > output.txt.gz
Аналогично, для распаковки файла gzipped с указанием выходного имени файла используйте команду:
gzip -c -d output.txt.gz > test1.txt
Вышеупомянутая команда распаковывает файл output.txt.gz и записывает вывод в файл test1.txt. В обоих случаях он не удалит исходный файл.
Распаковка файлов с помощью gzip
Чтобы распаковать файл test.txt.gz, заменив его исходной несжатой версией, мы используем команду:
gzip -d test.txt.gz
Мы также можем использовать gunzip для распаковки файлов.
gunzip test.txt.gz
Сжать файл с помощью gzip, указав уровень сжатия
Другим заметным преимуществом gzip является поддержка уровня сжатия. Он поддерживает 3 уровня сжатия, как указано ниже.
1 — Самый быстрый (Сжатие хуже)
9 — Медленнее (лучше)
6 — Уровень по умолчанию
Чтобы сжать файл с именем test.txt, заменив его сжатой версией gzipped с наилучшим уровнем сжатия, мы используем:
gzip -9 test.txt
Конкатенация нескольких сжатых файлов
Также возможно объединить несколько сжатых файлов в один. Как? Посмотрите следующий пример.
gzip -c test1.txt> output.txt.gz
gzip -c test2.txt >> output.txt.gz
Вышеуказанные две команды будут сжимать test1.txt и test2.txt и сохранят их в одном файле с именем output.txt.gz.
Для получения дополнительной информации см. справку.
man gzip
Сжатие и распаковка файлов с помощью программы bzip2
Bzip2 очень похожа на программу GZIP, но использует другой алгоритм сжатия Burrows-Wheeler, и кодирование Хаффмана. Файлы, сжатые с помощью bzip2, заканчиваются расширением .bz2.
Как уже было сказано, использование bzip2 почти такое же, как gzip. Просто замените gzip в приведенных выше примерах на bzip2.
Чтобы сжать файл с помощью bzip2, заменив его на сжатую версию, запустите:
bzip2 test.txt
Если вы не хотите заменять исходный файл, используйте флаг -c и запишите вывод в новый файл.
bzip2 -c test.txt > output.txt.bz2
Чтобы распаковать сжатый файл используйте:
bzip2 -d test.txt.bz2
Или,
bunzip2 test.txt.bz2
Для получения дополнительной информации см. справку.
man bzip2
Вывод
В этой статье вы узнали, что такое программы gzip и bzip2, и как их использовать для сжатия и распаковки файлов с некоторыми примерами в GNU/Linux. В следующем руководстве мы узнаем, как архивировать файлы и каталоги в Linux.
Всем удачного дня.
Было интересно. Хотя я уверен что дома делать архивы в терминале точно не придется, да и извлекать тоже. Может понадобится на удаленной системе, или для пакетной обработки… А так мне достаточно ГУИя в виде Менеджер архивов среды GNOME. В идеале бы ГУИ от виндового 7zip. Он вроде как есть, но не для простых смертных. Ну а в экстренном случае виндовый 7zip под вайном… Но если сабж вдруг когда-то понадобиться буду… Читати далі »