Команды 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