WebWost WebWostbeta

Архиваторы в Linux

Немного информации о работе с архиваторами в системах Linux.

Al-Sher

Всем привет. Сегодня я хочу рассказать о архиваторах в системе Linux, а именно о tar и zip. Начнем сначала: Что такое архиваторы и для чего они нужны. Возьмем цитату из википедии:

Архиватор — это программа, осуществляющая упаковку одного и более файлов в архив или серию архивов для удобства переноса или хранения, а также распаковку архивов. Большинство современных архиваторов также реализуют сжатие упакованных в архив данных.

То есть архиватор призван собрать множество файлов в один архив, который намного удобнее переносить/хранить. Современные архиваторы так же поддерживают еще и сжатие данных, что позволяет сократить размер "выходного" файла-архива.

Tar

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

Создание архива Tar

Для создания архива tar, необходимо передать ему ключи -cf. Ключ c говорит нашему tar о необходимости создать архив, а ключ f - что необходимо упаковать файлы. Пример создания архива:

tar -cf archive.tar ./files/

Данная команда создаст архив с именем archive.tar, вложив в него содержимое папки ./files. Так же можно передавать маску файлов, например такая команда:

tar -cf logs.tar ./log/*.log

Создаст архив logs.tar, в который попадут все файлы с расширением log из папки ./log Вроде простые архивы создавать научились, давайте попробуем теперь использовать сжатие gzip:

tar -czf logs.tar.gz ./log/

Как можно было увидеть, появился новый ключ - z. Именно он и говорит нашему архиватору tar о необходимости воспользоваться Gzip для сжатия файла. Теперь же создадим сжатый файл, используя bzip2:

tar -cjf logs.tar.bz2 ./log/

Тут появился ключ j, который указывает на использование bzip2 для сжатия архива tar.

Распаковка архива Tar

Для распаковки архива Tar необходимо воспользоваться ключом x:

tar -xf logs.tar.gz

При распаковке уже можно не указывать, какой метод сжатия использовался.

Просмотр содержимого архива Tar

Еще одной замечательной возможностью tar является возможность посмотреть содержимое архива. Для этого применяется флаг t:

tar -tf logs.tar.gz

Так же есть возможность наблюдать процесс упаковки/распаковки архива, воспользовавшись ключом v:

tar -cvzf logs.tar.gz ./log/

Zip

Zip, в отличие от tar, уже содержит в себе методы сжатия данных. Zip очень популярен и по умолчанию установлен в множестве операционных системах.

Создание архива Zip

Так как Zip уже содержит в себе методы сжатия файлов, тут разнообразие команд меньше. Например, для создания архива необходимо выполнить следующую команду:

zip -r logs.zip ./log/

Распаковка архива Zip

Для того, чтобы распаковать архив zip, необходимо выполнить команду:

unzip logs.zip

Gzip

Как я уже писал выше, gzip позволяет сжимать файлы, но не способен работать с множеством различных файлов, поэтому его нельзя назвать архиватором. Но я всё же постараюсь немного рассказать о работе с ним. Для сжатия файла необходимо выполнить команду:

gzip logs.tar

В результате мы получим сжатый файл с названием logs.tar.gz. Стоит заметить, что исходный файл не остается. Чтобы воспользоваться разжатием, необходимо выполнить команду:

gunzip logs.tar.gz

В результате чего мы получим уже файл logs.tar.

Выше я уже писал о работе gzip совместно с tar. На мой взгляд, это наилучший способ работы с tar архивами, сжатыми с помощью gzip.

Bzip2

Bzip2, точно так же как и gzip, способен лишь сжимать файлы. Bzip2 сжимает файлы лучше, чем Gzip, однако процесс сжатия занимает больше времени. Для сжатия файла необходимо выполнить команду:

bzip2 logs.tar

А для разжатия:

bunzip2 logs.tar.bz2

Работа данных функций аналогична работе с Gzip.

Если команда не найдена

Вполне возможно, что одна из приведенных выше команд будет не найдена. Для исправления данной ситуации необходимо выполнить установку приложений. Для CentOS:

yum install tar gzip bzip2 zip

Для Ubuntu:

apt-get install tar gzip bzip2 zip

Так же не стоит забывать, что Tar не сможет сжимать файлы без установленных Gzip и Bzip2.

0 Комментариев

Новый комментарий