Поиск по сайту:

Как сжимать и распаковывать файлы в Linux

Сжатие весьма полезно при резервном копировании важных файлов, а также при отправке больших файлов через Интернет. В этом руководстве мы обсудим, как сжимать и распаковывать файлы в Linux с помощью двух программ командной строки, а именно gzip и bzip2.

Примечание:

Сжатие уже сжатого файла требует дополнительных затрат, поэтому вы получите файл немного большего размера. Итак, прекратите сжимать сжатый файл.

Сжатие и распаковка файлов в Linux

Как уже говорилось, наиболее часто используемые программы для сжатия файлов в Linux и Unix-подобных системах:

  1. gzip
  2. bzip2

Сначала мы увидим использование Gzip.

1. Сжимайте и распаковывайте файлы с помощью программы Gzip.

Gzip — это утилита для сжатия и распаковки файлов с использованием алгоритма кодирования Лемпеля-Зива (LZ77).

1.1 Сжатие файлов

Чтобы сжать файл с именем ostechnix.txt, заменив его сжатой версией в формате gzip, выполните:

gzip ostechnix.txt

Gzip заменит исходный файл ostechnix.txt на сжатую версию с именем ostechnix.txt.gz.

Команду gzip можно использовать и другими способами. Хороший пример: мы можем создать сжатую версию вывода определенной команды. Посмотрите на следующую команду.

ls -l Downloads/ | gzip > ostechnix.txt.gz

Приведенная выше команда создает сжатую версию списка каталогов папки «Загрузки».

1.2 Сжимайте файлы и записывайте выходные данные в разные файлы (не заменяйте исходный файл)

По умолчанию программа gzip сжимает данный файл, заменяя его сжатой версией, сжатой gzip. Однако вы можете сохранить исходный файл и записать вывод в стандартный вывод. Например, следующая команда сжимает ostechnix.txt и записывает выходные данные в output.txt.gz.

gzip -c ostechnix.txt > output.txt.gz

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

gzip -c -d output.txt.gz > ostechnix1.txt

Приведенная выше команда распаковывает файл output.txt.gz и записывает выходные данные в файл ostechnix1.txt. В обоих случаях исходный файл не будет удален.

1.3 Распаковка файлов

Чтобы распаковать файл ostechnix.txt.gz, заменив его исходной несжатой версией, мы делаем:

gzip -d ostechnix.txt.gz

Мы также можем использовать Gunzip для распаковки файлов.

gunzip ostechnix.txt.gz

1.4 Просмотр содержимого сжатых файлов без их распаковки

Чтобы просмотреть содержимое сжатого файла с помощью gzip без его распаковки, используйте флаг -c, как показано ниже:

gunzip -c ostechnix1.txt.gz

Альтернативно используйте утилиту zcat, как показано ниже.

zcat ostechnix.txt.gz

Вы также можете передать вывод команде «меньше», чтобы просмотреть вывод постранично, как показано ниже.

gunzip -c ostechnix1.txt.gz | less
zcat ostechnix.txt.gz | less

В качестве альтернативы существует программа zless, которая выполняет ту же функцию, что и конвейер выше.

zless ostechnix1.txt.gz

1.5 Сжать файл с помощью gzip, указав уровень сжатия.

Еще одним заметным преимуществом gzip является поддержка уровня сжатия. Он поддерживает 3 уровня сжатия, как указано ниже.

  • 1 – самый быстрый (худший)
  • 9 – самый медленный (лучший)
  • 6 – уровень по умолчанию.

Чтобы сжать файл с именем ostechnix.txt, заменив его сжатой версией в формате gzip с наилучшим уровнем сжатия, мы используем:

gzip -9 ostechnix.txt

1.6 Объединение нескольких сжатых файлов

Также возможно объединить несколько сжатых файлов в один. Как? Посмотрите на следующий пример.

gzip -c ostechnix1.txt > output.txt.gz
gzip -c ostechnix2.txt >> output.txt.gz

Две приведенные выше команды сжимают ostechnix1.txt и ostechnix2.txt и сохраняют их в одном файле с именем output.txt.gz.

Вы можете просмотреть содержимое обоих файлов (ostechnix1.txt и ostechnix2.txt), не распаковывая их, с помощью одной из следующих команд:

gunzip -c output.txt.gz
gunzip -c output.txt
zcat output.txt.gz
zcat output.txt

Более подробную информацию можно найти на страницах руководства.

man gzip

2. Сжимайте и распаковывайте файлы с помощью программы bzip2.

bzip2 очень похож на программу gzip, но использует другой алгоритм сжатия, называемый алгоритмом сжатия текста с сортировкой блоков Берроуза-Уиллера и кодированием Хаффмана. Файлы, сжатые с помощью bzip2, будут иметь расширение .bz2.

Как я уже сказал, использование bzip2 практически такое же, как и gzip. Просто замените gzip в приведенных выше примерах на bzip2, gunzip на bunzip2, zcat. с помощью bzcat и так далее.

Чтобы сжать файл с помощью bzip2, заменив его сжатой версией, выполните:

bzip2 ostechnix.txt

Если вы не хотите заменять исходный файл, используйте флаг -c и запишите вывод в новый файл.

bzip2 -c ostechnix.txt > output.txt.bz2

Чтобы распаковать сжатый файл:

bzip2 -d ostechnix.txt.bz2

Или,

bunzip2 ostechnix.txt.bz2

Чтобы просмотреть содержимое сжатого файла без его распаковки:

bunzip2 -c ostechnix.txt.bz2

Или,

bzcat ostechnix.txt.bz2

Более подробную информацию можно найти на страницах руководства.

man bzip2

Рекомендуем прочитать:

  • Pigz — параллельное сжатие и распаковка файлов в Linux

Краткое содержание

В этом уроке мы узнали, что такое программы gzip и bzip2 и как использовать их для сжатия и распаковки файлов, на некоторых примерах в GNU/Linux. В следующем руководстве мы узнаем, как архивировать файлы и каталоги в Linux.

Статьи по данной тематике