Как сжимать и распаковывать файлы в Linux
Сжатие весьма полезно при резервном копировании важных файлов, а также при отправке больших файлов через Интернет. В этом руководстве мы обсудим, как сжимать и распаковывать файлы в Linux с помощью двух программ командной строки, а именно gzip и bzip2.
Примечание:
Сжатие уже сжатого файла требует дополнительных затрат, поэтому вы получите файл немного большего размера. Итак, прекратите сжимать сжатый файл.
Сжатие и распаковка файлов в Linux
Как уже говорилось, наиболее часто используемые программы для сжатия файлов в Linux и Unix-подобных системах:
- gzip
- 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.