Книга: Linux глазами хакера
13.5.3. gzip
13.5.3. gzip
В ОС Linux есть достаточно много различных утилит для упаковки данных. Наиболее популярной из них является gzip. Преимущество архивирования над простым копированием данных заключается в том, что результирующая копия занимает меньше места, а значит, носитель для резервирования нужен меньшего объема.
Чаще всего резервированию подлежат документы, размер которых в заархивированном виде может уменьшаться на 90%. Текстовые данные сжимаются намного лучше, чем программы.
Недостаток архивирования — возрастает нагрузка на процессор и может потребоваться больше времени на создание полной копии.
За счет того, что архив занимает намного меньше места, его копирование на сетевые ресурсы или запись на съемные носители (ZIP, JAZ, CD-R/RW, DVD-R/RW и др.) будет производиться быстрее. В итоге может получиться, что временные затраты на архивирование (с учетом занятости процессора) будут равны времени на копирование без архивирования.
Прежде чем сжимать какой-либо файл, рекомендуется подготовить tar-архив. Потом достаточно выполнить команду упаковки:
gzip -уровень файл.tar
В качестве ключа -уровень
нужно указать степень компрессии. Максимальный уровень равен 9. После этого указывается имя tar-архива. Давайте сожмем архивный файл, который мы создали из директории /home, применяя наибольшую компрессию. Выполните следующую команду:
gzip -9 backup.tar
Теперь просмотрите содержимое директории (команда ls
). Обратите внимание, что файла backup.tar больше нет. Вместо него появился backup.tar.gz, размер которого значительно уменьшился.
Чтобы разархивировать такой файл, можно пользоваться все той же командой tar, только необходимо указать ключи xfz
:
cd /
tar xfz /home/backup.tar.gz
Эта команда сначала разархивирует gz-файл и тут же распакует tar-архив.
Если необходимо из gz-файла снова получить tar-архив (без его распаковки), то можно выполнить команду:
gzip -d /home/backup.tar.gz
После этого вы снова можете увидеть файл backup.tar, а backup.tar.gz исчезнет.
Теперь вы готовы написать свой сценарий, который будет собирать директории для архивирования в tar-файл, а затем сжимать его, чтобы уменьшить его размер. Но зачем использовать две команды, когда можно обойтись одной. Вот как это делается:
tar cvf - /home | gzip -9с > backup.tar.gz
В данном примере мы собираем в tar-архив директорию /home и тут же сжимаем ее утилитой gzip.
Помимо gzip для архивирования иногда используется утилита compress, но ее возможности по сжатию ниже, и к тому же вокруг нее были скандалы и разбирательства по поводу лицензии. Большинство администраторов уже перешли на использование gzip, и я вам рекомендую с самого начала привыкать к этой программе.
- 3.7.2. GZIP, BZIP2, TAR-архивы
- Strip Postfix
- 5.1.2. Architecture Objects
- 7.4.6. U-Boot Image Format
- 12.5. Команды для работы с файлами и архивами
- 11.3.4. BusyBox Commands
- Compression
- Decompression
- Возможности tar
- Инсталляция исходного кода ядра
- 11.1.5. Файл ftpconversions
- 3.7. Как заархивировать или разархивировать файлы?