Архивация. Команды gzip, bzip2, tar

Команды gzip, bzip2

При использовании команды zip происходит архивация одного или нескольких файлов и производится сжатие. В Linux существуют и более мощные утилиты сжатия по сравнению с zip. Это gzip и bzip2. Эти команды только сжимают и только один файл.

Например, gzip [опции] Privet.txt или bzip2 [опции] Proba.odt выходе дают файлы Privet.txt.gz и Proba.odt.bz2. Без использования дополнительных опций эти команды не выдают результата своей работы, кроме того удаляют исходные файлы:

Для сохранения исходных файлов применяется опция -k, для вывода информации о ходе работы — опция -v. Применим сразу две опции -kv:

Можно задать новое имя выходному файлу опцией -c или -cv (если нужна информация о ходе в Терминале), в этом случае сохраняется и исходный файл и опцию -k применять не нужно:

Также, как и для команды zip, для команд gzip и bzip2 можно указать степень сжатия от 0 до 9. Например, опция -с7 означает создание выходного файла с указанным именем и степенью сжатия 7.

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

Команда tar

Данная команда служит только для архивирования одного или нескольких файлов. При создании архива исходные файлы не удаляются.

Команда tar -cf Arc.tar Privet.txt Proba.odt — создать архив Arc.tar (опция -cf, но не fc) и поместить в него файлы Privet.txt и Proba.odt.

Команда tar -tf Arc.tar показывает в Терминале список файлов в архиве.

Другая команда tar -xf Arc.tar извлекает файлы в текущий каталог, архив сохраняется.

Аналогично файлам архивируются каталоги командой tar. Для начала нужно перейти на уровень выше. У меня папка Test находится на Рабочем столе1, значит переходим на него: cd /home/school/Desktops/Desktop1: tar -cf ArcTest.tar Test/ — на Рабочем столе создаётся архив с указанным именем, в котором находится папка Test со всеми вложенными папками и файлами.

После создания архива командой tar можно применить команды gzip и bzip2. Например, gzip -k ArcTest.tar, сжимает архив ArcTest.tar, сохраняет его (опция -k) и создаёт ArcTest.tar.gz там же на Рабочем столе.

Последние две команды можно объединить в одну: tar -cf ArcTest.tar Test/; gzip -k ArcTest.tar (проверил в Терминале).

С использованием дополнительных опций создание сжатых архивов производится одной командой tar -zcf ArcTest.tar.gz Test/ для gzip или tar -jcf ArcTest.tar.bz2 Test/ :

Команда tar по умолчанию не отображает в терминале все свои действия, поэтому можно воспользоваться опцией -v для показа.

Для разархивирования файла применяется опция -x: tar -zxf ArcTest.tar.gz или tar -jxf ArcTest.tar.bz2. Проверил оба варианта, во втором случае добавил -v (см. скрин):

Отмечу, что для показа списка файлов в архиве используется опция -t (без f никак), например, tar -tf ArcTest.tar.bz2:

Видим папку Test, в ней 3 файла.

Ещё пример

Из практики из инструкции по установке Java. Более сложный пример. Для установки Java был скачан в Загрузки архив jre-8u391-linux-x64.tar.gz. Для установки была рекомендована команда: sudo tar -C /opt -xzvf Загрузки/jre-*-linux-x64.tar.gz.

-С /opt — изменить директорию для файлов из архива на /opt (папка opt в корне файловой системы).

  • z  означает (раз)архивировать.
  • x  означает извлечь файлы из архива.
  • v  означает показать обрабатываемые файлы.
  • f  указывает на имя архива.

Звёздочка * в данной команде заменяет любой набор символов, в примере * вместо 8u391.

Команда выполнена. Смотрим:

Можно было попробовать разархивировать архив в Загрузки и попытаться скопировать в нужную папку файловой системы, но для этой операции не хватает прав, нужны права sudo или root. Это как раз случай, когда без Терминала трудно обойтись.

Использованы материалы урока: https://easy-network.ru/uroki-linux/90-urok-11-file-compression.html

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Прокрутить вверх