Как сжимать файлы в linux с помощью gzip и bzip2

Топ-15 утилит сжатия файлов в Linux

Топ-15 утилит сжатия файлов в Linux

Краткое введение в тему «Сжатие файлов«

Сжатие файлов является обычной задачей для большинства администраторов и обычных пользователей. Эту функцию используют для экономии места на диске или для перемещения данных в более безопасное место.

С исторической точки зрения утилита tar была разработана для обеспечения последовательного резервного копирования данных и была сохранена в магнитных ленточных накопителях.

Чтобы отправить данные через Интернет, утилита сжатия выполняет важную роль: она может содержать несколько файлов вместе и уменьшать общий размер файла. Это может сэкономить как время, так и пропускную способность Интернета.

Linux пользуется с очень быстрыми и эффективными инструментами, которые могут уменьшить размер файлов от 40 до 80 процентов. В этой статье мы обсудим 15 лучших утилит в Linux, доступных для пользователей.

Содержание

Несмотря на то, что максимум инструментов сжатия данных доступны со всеми преимуществами Linux,  мы будем использовать Mint 17 Linux для демонстрационной цели. Некоторые из инструментов основаны на командной строке, а некоторые из них с графическим интерфейсом. Давайте обсудим их по одному.

Слово tar извлекается из ленточного архива. Это самый популярный инструмент сжатия и декомпрессии для администраторов Linux. Он используется для архивирования в нескольких форматах файлов, таких как gzip, bzip2 или lzip и т.д.

Установить tar в Debian / Ubuntu

# apt-get install tar

Установите tar в CentOS

# yum install tar

Первый аргумент с командой tar должен быть любым из Acdrtux.

Пример

Создание файла размером 512 МБ

# fallocate -l 512M um.img

Создать архив

# tar -cvfz um.tar.gz um.img

-c — создать архив, -v — подробно, -f для архивирования файла, -z для сжатия файлов в формате gzip.

Используйте man-утилиту для более подробной информации.

Инструмент gzip является самой популярной и быстрой утилитой сжатия файлов в Linux. Инструмент Gzip сохраняет исходное имя файла расширение сжатого файла .gz и отметку времени. Обычно поставляется как встроенный пакет для всех дистрибутивов, но может быть легко установлен.

Для Ubuntu

# apt-get install gzip

Для CentOS

# yum install gzip

Примеры

# gzip examplefile

Чтобы получить информацию о сжатом файле

# gzip -l examplefile.gz compressed uncompressed ratio uncompressed_name 203559 209715200 99.9% examplefile

Чтобы распаковать сжатый файл

#gzip -d examplefile.gz

Сжатие всех файлов и каталогов рекурсивно

# gzip -r examplefile

Указанную выше утилиту не рекомендуется использовать, иначе она может создавать сложности при восстановлении данных.

Lzma — это инструмент сжатия, такой как zip или tar, но он выполняет быстрее по сравнению с bzip.  

Чтобы создать архив, используйте следующую команду

# lzma -d —stdout examplefile.lzma >examplefile

Чтобы извлечь данные

# lzma -d —stdout examplefile.lzma >examplefile

Хотя lzma — сильный инструмент, но он не так популярен среди пользователей Linux.

XZ является наследником утилиты lzma. Он не может сжимать несколько файлов в одной команде. Эта утилита была представлена в 2009 году, поэтому существует вероятность того, что ее нельзя поддерживать на старых версиях Linux. Тем не менее она оснащена всеми новейшими операционными системами Linux, она автоматически добавит расширение .xz к файлу сжатия.

Пример

Сжатие файла

# xz examplefile

Чтобы распаковать файл

# xz -d examplefile.xz

Утилита Bzip2 работает быстрее, чем gzip, более компактно сжимает файлы и папки. Для сжатия файлов потребовалось больше ОЗУ, чтобы уменьшить потребление памяти, поставьте флажок -s в опции.

Пример

# bzip2 examplefile

Флажок –s

# bzip2 -s examplefile

Чтобы распаковать сжатый файл .bz2

# bzip2 -d examplefile.bz2

Или

# bunzip2 examplefile.bz2

Используйте опцию -v для подробной распаковки

# bzip2 -v examplefile examplefile: 1184831.638:1, 0.000 bits/byte, 100.00% saved, 209715200 in, 177 out.

Pax — это менее известный инструмент архивирования в Linux. Работает быстро и это больше, чем просто компрессор. Он может в реальном архиве копировать файлы удаленно, pax не установлен по умолчанию в Ubuntu / Mint Linux.

Установка пакета

# apt-get install pax

Пример

# pax -wf examplefile.tar examplefile

w для записи архива, f для файла.

Для сжатия файла в bzip или gzip используйте параметр –z

# pax -wf examplefile.tar.gz examplefile

Список содержимого архива

# pax -f examplefile.tar[/bash} Извлечь содержимое архива [bash]# pax -r examplefile.shar

Декомпрессировать файл

# unshar examplefile.shar

Можно определить как ввод и вывод копии. Он считывает список имени файла по строкам в исходных и архивных файлах на выходе. Его классическая команда также предоставляется как встроенная.

Пример

# cd /tmpls | cpio -ov >/home/username/backup.cpio

Архив декомпрессии

# cpio -idv

Источник: http://blog.sedicomm.com/2017/06/01/top-15-utilit-szhatiya-fajlov-v-linux/

5.2. Сжатие файлов в командной строке

Сжатые файлы занимают меньше дискового пространства и могут быть загружены быстрее, чем большие несжатые файлы. Для сжатия файлов в SLCE используются следующие программы: bzip2, gzip или zip.

Рекомендуется использовать программу сжатия bzip2, так как она обеспечивает наибольшее сжатие и поддерживается большинством UNIX-подобных операционных систем.

Программа сжатия gzip также поддерживается большинством UNIX-подобных операционных систем.

При необходимости переноса файлов между Linux и другими операционными системами, такими как MS Windows, лучше использовать программу сжатия zip, так как она наиболее совместима с программами, используемыми для сжатия файлов в Windows.

Программа сжатияРасширение файлаПрограмма декомпрессии
bzip2 .bz2 bunzip2
gzip .gz gunzip
zip .zip unzip

Таблица 5.1. Инструменты сжатия файлов

Файлам, сжатым с помощью программы bzip2, принято давать расширение .bz2, файлам, сжатым с помощью программы gzip, принято давать расширение .gz и файлам, сжатым с помощью программы zip, принято давать расширение .zip.

Для декомпрессии файлов, сжатых с помощью программы gzip, используется программа gunzip, файлов, сжатых с помощью программы bzip2, используется программа bunzip2 и файлов, сжатых с помощью программы zip, используется программа unzip.

Чтобы сжать файл с помощью bzip2, наберите в командной строке:

bzip2 имя_файла

Файл будет сжат и сохранен под именем имя_файла.bz2.

Для декомпрессии сжатого файла воспользуйтесь командой:

bunzip2 имя_файла.bz2

Сжатый файл имя_файла.bz2 будет заменен файлом имя_файла.

Программа bzip2 может быть использована для сжатия нескольких файлов и каталогов одновременно. Для этого перечислите их, разделив пробелами:

bzip2 имя_файла.bz2 файл1 файл2 файл3 /usr/user/docs/

В этом примере файлы файл1, файл2, файл3 и содержимое каталога /usr/user/docs/ сжимаются и помещаются в файл имя_файла.bz2.

Подсказка
Для получения более подробной информации наберите в командной строке man bzip2 и man bunzip2 и прочтите страницы руководства bzip2 и bunzip2.

Для сжатия файлов с помощью команды gzip наберите в командной строке:

gzip имя_файла

Файл будет сжат и сохранен под именем имя_файла.gz.

Для декомпрессии сжатого файла наберите в командной строке:

gunzip имя_файла.gz

Сжатый файл имя_файла.gz будет заменен файлом имя_файла.

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

gzip -r имя_файла.gz файл1 файл2 файл3 /usr/user/docs/

В этом примере файлы файл1, файл2, файл3 и содержимое каталога /usr/user/docs/ сжимаются и помещаются в файл с именем имя_файла.gz.

Подсказка
Для получения более подробной информации наберите в командной строке man gzip и man gunzip и прочтите страницы руководства gzip и gunzip.

Чтобы сжать файл с помощью команды zip, наберите в командной строке:

zip -r имя_файла.zip каталог

В этом примере имя_файла.zip — создаваемый вами файл, а каталог — каталог, который будет помещен в новый zip-файл. Опция -r указывает, что все файлы из каталога каталог будут включены рекурсивно.

Чтобы извлечь содержимое файла zip, наберите в командной строке:

unzip имя_файла.zip

Программа zip может быть использована для сжатия нескольких файлов и каталогов одновременно. Для этого перечислите их, разделив пробелами:

zip -r имя_файла.zip файл1 файл2 файл3 /usr/user/docs/

В этом примере файлы файл1, файл2, файл3 и содержимое каталога /usr/user/docs/ сжимаются и помещаются в файл имя_файла.zip.

Подсказка
Для получения более подробной информации наберите в командной строке man zip и man unzip и прочтите страницы руководства zip и unzip.

Источник: http://www.linux-ink.ru/static/SL.5.3_Docs/Docs/SLCE/slce-sbs-ru/s1-compressing-archiving-compressing.html

Команда gunzip в Linux с разъяснениями с примерами

Для начала, есть инструмент такой как команда gzip, которая используется для сжатия или распаковки файлов.

Чтобы распаковывать, команда предлагает опцию командной строки -d, которая может быть использована следующим образом:gzip -d [compressed-file-name]

Тем не менее, есть совершенно другой инструмент, который можно использовать для разжатия или сжатия архивов, созданных Gzip. Это инструмент gunzip.

В этой статье мы рассмотрим команду gunzip, используя некоторые легко понятные примеры. Пожалуйста, обратите внимание, что все примеры/инструкции, указанные в руководстве были протестированы на Ubuntu 16.04.

Команда Gunzip в Linux

Итак, теперь мы знаем, что сжатые файлы могут быть восстановлены с помощью либо «gzip -d» или команда gunzip. Основной синтаксис gunzip является:

gunzip [compressed-file-name]

Следующие примеры должны дать вам лучшее представление о том, как работает инструмент:

Вопрос 1. Как распаковывать архивы с помощью Gunzip?

Это очень просто – просто передайте имя файла архива в качестве аргумента gunzip.

gunzip [archive-name]

Например:

gunzip file1.gzroot@destroyer: gunzip file1.gz
root@destroyer: ls file1*
file1 file1symlink

Вопрос 2. Как не удалять архивный файл в Gunzip?

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

gunzip -c [archive-name] > [outputfile-name]

Например:

gunzip -c file1.gz > file1root@destroyer: gunzip -c file1.gz > file1
root@destroyer: ls file1*
file1 file1.gz file1symlink

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

Q3. Как указать Gunzip упаковать файл в другой каталог?

Мы уже обсуждали опцию -c в предыдущем вопросе. Для того, чтобы указать Gunzip сжать файл в определенный каталог, отличном от рабочего каталога, просто укажите абсолютный путь после оператора перенаправления.

gunzip -c [compressed-file] > [/complete/path/to/dest/dir/filename]

Вот пример:

gunzip -c file1.gz > /home/himanshu/file1

Следующие детали – взято из общей страницы руководства по GZIP / Gunzip – должны быть полезны для тех, кто хочет узнать больше о команде:

Gunzip принимает список файлов из командной строки и заменяет каждый файл,        имя которого заканчивается .gz, -gz, .z, -z, или _z (игнорируя случай) и который        начинается с правильным магическим числом с несжатым файлом без        оригинального расширения. Gunzip также распознает специальные расширения        .tgz и .taz как сокращения .tar.gz и .tar.Z соответственно. При        сжатии, GZIP использует расширение .tgz в случае необходимости вместо усечения
       в файл с расширением .tar.        Gunzip в настоящее время может распаковывать файлы, созданные с помощью Gzip, Zip, сжимать,        сжимать -Н или упаковывать. Обнаружение входного формата происходит автоматически.
       При использовании первых двух форматов, Gunzip проверяет 32 — битный CRC. Для упаковки
       и разархивирования проверяет несжатую длину. Стандартный формат сжатия
       не был разработан, чтобы обеспечить проверку соответствия. Однако Gunzip в некоторых        случаях способен обнаружить плохой .Z — файл. Если вы получаете сообщение об ошибке при разархивации        файла .Z, то предполагается, что файл .Z не верного стандарта.

Вывод

Что касается основы использования, то, есть не большая часть недостатка обучения, связанного с gunzip. Мы рассмотрели практически все, что нужно начинающему, чтобы узнать об этой команде, и начать использовать его. Для получения дополнительной информации, перейдите на страницу https://linux.die.net/man/1/gzip.

Читайте также:  Linux удерживает позиции в топ-500 суперкомпьютеров мира

Источник: https://andreyex.ru/operacionnaya-sistema-linux/komanda-gunzip-v-linux-s-razyasneniyami-s-primerami/

Почти линейное увеличение производительности bzip2 на многопроцессорных системах

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

Но можно получить эффективность bzip2, при этом существенно увеличив скорость. Речь идёт об утилите pbzip2 — Parallel BZIP2.

В обычном случае при использовании bzip2 задействуется только одно процессорное ядро, в то время как на современных системах их может быть 2, 4, или, например, 8.

Pbzip2 может использовать сразу несколько процессорных ядер, что приводит, по заявлению авторов, к почти линейному увеличению производительности. Сжатые файлы, которые создаёт pbzip2, полностью совместимы с bzip2 1.0.2 и более новыми версиями bzip2 (также есть утилита pigz, которая, в свою очередь, является многопоточной реализацией gzip — спасибо altexxx).

Ниже результат тестирования скорости сжатия участка SQL-файла размером 1000M (dd if=dump.

sql of=testfile bs=1M count=1000) на компьютере с двумя процессорами Intel Xeon E5520 (4 ядра, 8 потоков, тактовая частота 2,26 ГГц):Как видно из результатов тестирования, pbzip2, работающий в 4 потока, приблизительно в 3,6 раз быстрее, чем bzip2, работающий в один поток — что действительно является почти линейным увеличением производительности.

При этом pbzip2, работающий в 16 потоков, оказался медленнее, чем pbzip2, использующий 4 потока — вероятно, из-за скорости выполнения операций ввода/вывода. Также смотрите дополнительные тесты в комментариях (спасибо tristan и bliznezz) — в том числе, с использованием tmpfs-раздела в оперативной памяти.

Используется pbzip2 примерно так же, как и просто bzip2, но есть некоторые дополнительные функции, например вывод прогресса выполнения операции в процентах.

Чтобы сжать файл:

pbzip2 -k -p4 filename

Где filename — имя файла. По умолчанию сжатый файл называется так же, как исходник, но в конце добавляется .bz2 (то есть в данном случае filename.bz2). Опция -k нужна для того, чтобы pbzip2 не удалял исходник после того, как закончит сжатие. Можно также добавить опцию -v, для того, чтобы выводилась подробная информация, в том числе прогресс выполнения операции в процентах. Опция -p устанавливает количество потоков (в данном случае 4). Чтобы распаковать файл:

pbzip2 -dk -p4 filename.bz2

Где filename.bz2 — имя файла. По умолчанию распакованный файл называется так же, как сжатый, но в конце убирается .bz2 (то есть в данном случае filename). Опция -d нужна для того, чтобы произвести декомпрессию (decompress). Соответственно, вместе с выводом подробной информации и прогресса выполнения операции сжатие будет выглядеть так:

pbzip2 -kv -p4 filename

А распаковать файл можно так:

pbzip2 -dkv -p4 filename.bz2

Если требуется сжать целую директорию, то, как и в случае с gzip и bzip2, делается так называемый тарболл (который сам по себе не имеет сжатия), содержащий нужную директорию, и он сжимается нужной утилитой. В случае с pbzip2 сделать это в одну строку можно так:

tar cf myfile.tar.bz2 —use-compress-prog=pbzip2 directory_to_compress/

Или так:

tar -c directory_to_compress/ | pbzip2 -c > myfile.tar.bz2

Источник: https://habr.com/post/134747/

Архивирование в linux: базовые навыки работы с tar и gzip/bzip2

Отличия Казалось бы, что в любой операционной системе методы архивирования одинаковы, но это далеко не так. Так сложилось, что для пользователей windows и mac норма архивировать в rar или zip, но опытные пользователи unix/linux используют исключительно методы архивации tar или gzip.

Конечно, и windows , и Mac пользователи могут использовать tar/gzip (например, при упаковке исходников), но все-таки такие форматы больше распространены для linux пользователей. Именно в tar/gzip распространяется практически все программное обеспечения (для ручной компиляции) под linux.

Так что давайте научимся с ними работать.

О tar и gzip

Формат tar используется для создания архива, то есть для хранения нескольких файлов в одном файле. Важно знать, что сам по себе tar не сжимает файлы, а просто создает архив который по размеру схож с общим суммарным размеров упакованных в него файлов. Gzip (расшифровывается как GNU zip) является утилитой для сжатия файлов.

Интересно то, что gzip не может создать архив — утилита только сжимает один файл до меньших размеров. Тут стоит вопрос: как же создать сжатый архив в linux? Ответ прост — использовать и tar и gzip одновременно. Смысл в том, что с начала создается архив с файлами при помощи утилиты tar, а потом этот архив сжимается утилитой gzip.

В результате всех этих манипуляций мы должны получить файл с расширением tar.gz

О bzip2

bzip2 — это альтернатива gzip, обладавший лучшими показателями сжатия и скорости. В результате мы получим архив с расширением tar.bz2

Создаем архивы через gui

Теперь настало время узнать как же создавать архивы. Для начала рассмотрим самый легкий путь — создание архивов через gui (графический) интерфейс. Графический доступ к утилитам tar и gzip/bzip2 скорее всего предоставлен в вашей среде рабочего стола — DE (KDE,GNOME,XFCE и т.п).

Методы работы с графическими архиваторам отличаются очень слабо, поэтому мы рассмотрим процесс на примере архиватора Ark из KDE. Так же поставим себе задачу в виде упаковки исходного кода проекта sblog в архив tar.gz для последующего резервного копирования.

В современных DE архиватор интегрирован с файловым менеджером по этому для удобства будем работать с dolphin для выбора файлов к архивированию.

Первый шаг — выбрать файлы для архивирования

В нашем случае заходим в папку с проектом и нажимаем ctrl+a для выделения всех папок и файлов и в контекстном меню выбираем упаковать в архив.

Второй шаг — выбираем формат архива После нажатия на «упаковать в архив» вы попадете в меню программы Ark в котором предоставляются все инструменты для управление архивированием. Главное — выбрать формат для создаваемого архива.Для наших целей подойдет формат сжатый gzip (то есть tar.gz).

Последний шаг — выбираем имя и сохраняем

Архив готов для распространения! Что бы убедиться в сохранности данных можно сделать md5 суммы и сверять их. Это обеспечит наивысшею теперь сохранности файлов при передаче по каналам, таким как интернет.

Создаем архивы через CLI

Через графический интерфейс удобно создавать архивы, но так же удобно (но труднее) это делать через командную строку. Для создания архивов через командную строку применяются все те же команды tar,gzip и bzip2 с определенными флагами.

Создаем сжатый tar одной командой!

Казалось бы, что нужно вручную вызвать tar, а потом gzip и так оно и есть. Однако, для удобства есть набор флагов у команды tar, в частности прямо с вызовом tar можно применить сжатие gzip добавив опцию -z. Давайте опять рассмотрим наш пример, но теперь будем архивировать через терминал.

Первый шаг — переход в нужную папку

cd www/sblog
Второй шаг — задаем команду для создания архива
tar -zcvf sblog.tar.gz * В результате получаем сжатый архив sblog.tar.gz

Использование bzip

Если вы хотите использовать bzip2 совместно с tar используйте следующий вызов:

tar -jcvf sblog.tar.bz2 *

В результате получаем сжатый архив sblog.tar.bz2

Общий вид вызова команды tar:

tar -cf имя_будущего_архива файл(ы)_для_упаковки Опции -c и -f означают, соответственно —create и —file, т.е создать файл.

Распаковка файлов

Для распаковки архива используется та же команда, только с флагом —extarct:

tar -zxvf путь_к_архиву

В случае с bzip2:

tar -jxvf путь_к_архиву

Получение информации о файлах в архиве

Перед распаковкой архива часто нужно узнать что находится внутри. В графической среде можно просто открыть архив и он запустится в утилите для архивирования который покажет все файлы в архиве. В командной строке нужно использовать следующий вызов команды tar:

tar -svtf путь_к_архиву

В случае с bzip2:

tar -jvtf путь_к_архиву

Смотреть также:

Изучаем командную строку linux: навигация по файлам.

Источник: https://linuxnow.ru/view.php?id=42

Работа с архивами в Linux

Архивирование и сжатие файлов позволят хранить те же самые данные при меньших затратах такого ресурса как постоянное хранилище (жёсткий диск, сменный накопитель, оптический диск и т. д.).

Благодаря уменьшению размера, достигается не только экономия места на диске, но и ускорение передачи файлов по сети.

В настоящее время, когда Интернет стал очень быстрым, а постоянные хранилища весьма объёмными и намного более дешёвыми чем в прошлом, важность сжатия файлов утратила свою прежнюю актуальность.

Тем не менее, экономию места никто не отменял, да и зачастую нам приходится работать с уже сжатыми файлами, полученными из разных источников. Уже хотя бы поэтому необходимо иметь общее представления о работе с архивами в Linux: знать как их создавать, как их распаковывать, понимать разницу между архивированием и сжатием.

7zip — самый универсальный инструмент по работе с архивами

В зависимости от типа архивов, обычно, нужно вводить соответствующую команду с набором опций. Например, у нас есть архив archive.gz, чтобы его извлечь, нужно вспомнить команду gunzip. Т.е. команда выглядит так:

gunzip archive.gz

Если же у нас файл archive.bz2, то мы припоминаем, что распаковывается этот архив программой bunzip2 Т.е. теперь нам нужно вводить такую команду:

bunzip2 archive.bz2

И так для разных типов архивов нам нужно вспомнить команды и необходимый набор ключей. В принципе, это не такой большой объём информации, но можно упростить себе жизнь.

Прелесть 7zip в том, что она поддерживает множество архивов (7z, XZ, GZIP, TAR, ZIP, BZIP2, LZMA2, CAB, ARJ, CPIO, RPM, ISO и DEB), т. е. независимо от типа сжатия и архивации, нам достаточно набрать команду

7z e archive.gz 7z e archive.bz2

И это справедливо для любого поддерживаемого архива:

7z e archive.7z 7z e archive.rar 7z e archive.tar 7z e archive.zip

Думаю, идея понятна.

Как установить 7zip и как его использовать (с расшифровкой всех доступных опций) описано в этой статье.

Создание и распаковка архивов .zip: программы zip и unzip

zip позволяет сжимать файл(ы) и каталог(и). Применяется команда так:

zip опции архивный_фай.zip файлы_и_каталоги_для_архивации

Чтобы в архив добавлялось содержимое каталогов, а не только их название, нужно использовать ключ -r

zip -r archive.zip каталог_для_архивации

Для распаковки архивов zip

unzip archive.zip

Чтобы посмотреть список содержимого архива (но не распаковывать его) можно сделать так:

unzip -l archive.zip

Извлечь и посмотреть содержимое отдельных папок, файлов можно так

unzip archive.zip интересующий_каталог unzip -l archive.zip интересующий_каталог

Различия сжатия и архивирования

Архивирование — это объединение нескольких файлов в один. Размер конечного (большого) файла равен сумме входящих в него файлов.

Сжатие — это уменьшение размера файла за счёт использования того или иного алгоритма.

На Windows эти операции, обычно, объединены в одну, которую называют архивацией. Также в одну операцию делает это 7zip и zip.

Для Linux есть команды, которые делают это раздельно, либо которые делают это в одно действие.

Читайте также:  Как установить последнюю версию filezilla с помощью flatpak

Создание и распаковка файлов в формате .gz: gzip и gunzip

Команда gzip осуществляет сжатие по одному файлу. Если ей передать в качестве аргумента папку, то она её проигнорирует. Если передать папку и соответствующий ключ -r, то она сожмёт каждый файл по отдельности, т. е. создаст много отдельных архивов.

Эти файлы будут иметь расширение .gz, распаковать их можно командой gunzip.

Создание и распаковка файлов в формате .bz2: bzip2 и bunzip2

Всё, что было сказано о программе gzip — сжатие по одному файлу — относится и к программе gzip. Различается только алгоритм сжатия — сжимает лучше.

При сжатии создаются файлы .bz2, распаковать их можно командой bunzip2.

Архивирование программой tar

«Чистые» архивы tar (они имеют расширение .tar) — это один файл, в котором без сжатия объединено несколько файлов.

Создаются они так:

tar cf имя_архива имя_каталога

Вместо одного каталога можно передать файл/список файлов/директорию/список директорий.

Ключ c означает создать архив, а после ключа f задаётся имя архива.

Чтобы посмотреть содержимое архива, нужно набрать команду

tar tf имя_архива

Где ключ t означает список, а ключ f, как это было сказано выше, говорит о том, что сейчас последует имя файла.

Если набрать так, то будет больше подробностей:

tar tvf имя_архива

Распаковываются .tar архивы так:

tar xf имя_архива

Новый ключ x означает распаковку.

Ещё можно сделать так:

tar xf имя_архива имя_файла_или_файлов

При этом будут извлечены отдельные файлы, которые указаны.

Сжатие архивов tar с помощью gzip и bzip2

gzip и bzip умеют сжимать файлы, но не умеют упаковывать их в один, tar умеет упаковывать в один, но не умеет сжимать. Хм… у вас не появилось идеи?

Создание сжатых архивов .tgz и .tar.gz

Расширения .tgz и .tar.gz означают одно и то же и означают они архив tar, которых сжали по алгоритму gzip. Т.е. можете выбрать то расширение, которое вам больше нравится. Создать сжатый архив tar с использованием сжатия gzip можно так

tar czf имя_архива.tgz список_для_архивации

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

Чтобы распаковать архивы .tgz и .tar.gz:

tar xvzf archive.tar.gz

Создание сжатых архивов .bzip2 и .tar.bz2

Расширения .bzip2 и .tar.bz2 означают одно и то же – сжатый по алгоритму bzip2 архив tar. Для создания сжатого архива tar с применением алгоритма сжатия bzip2 нужно набрать следующую команду:

tar cjf имя_архива.tgz список_для_архивации

Новая опция — j, означает выбор метода сжатия bzip2.

Чтобы распаковать архивы .bzip2 и .tar.bz2:

tar xvjf archive.tar.bz2

Если я что-то забыл или пропустил — пишите в комментариях.

Источник: https://ZaLinux.ru/?p=237

Команда gzip

Команда gzip предназначена для сжатия данных без потерь с помощью одноименной утилиты, использующей алгоритм Лемпела-Зива (LZ77) с кодированием Хаффмана. Целью использования данной утилиты является экономия дискового пространства.

Упомянутый алгоритм позволяет достичь худшей степени сжатия данных, чем те, которые реализованы в рамках утилит bzip2 и xz. При этом данный алгоритм является стандартным алгоритмом утилиты zip и используется по умолчанию в архивах формата ZIP.

Кроме того, он является менее ресурсоемким, чем алгоритмы, которые реализованы в рамках утилит bzip2 и xz. Последнее обстоятельство обуславливает актуальность данной утилиты для низкопроизводительных систем.

Базовый синтаксис команды выглядит следующим образом:

$ gzip [параметры]<\p>

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

По умолчанию оригинальные версии файлов заменяются на их сжатые версии с соответствующими метаданными (то есть, меткой времени модификации, правами доступа, именами владельца и группы владельцев и так далее).

Если вас не устраивает такое положение дел, вы можете воспользоваться параметром -k для сохранения оригинальных версий файлов.

Параметры из диапазона от -1 до -9 позволяют задать степень сжатия (от самой низкой до самой высокой соответственно), при этом чем выше степень сжатия, тем больше системных ресурсов требуется утилите.

Параметр -t предназначен для тестирования целостности сжатого файла и не оказывает какого-либо влияния на него (следует комбинировать его с параметром -v для подробного вывода). Параметр -l также не оказывает никакого влияния на сжатый файл и предназначен для получения информации об архиве (размеров сжатого и не сжатого файлов, степени сжатия и имени оригинального файла). Параметр -d позволяет восстановить оригинальные версии файлов с переданными именами на основе их сжатых версий.

Если же вам нужно создать архив с несколькими файлами внутри, одной утилиты gzip будет явно мало.

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

Например, вы можете использовать следующую последовательность команд для создания архива с именем archive.tar.gz:

$ tar -cf archive.tar
$ gzip archive.tar

Параметры -c и -f утилиты tar предназначены для указания на необходимость добавления всех файлов в один архив (-c) и чтения имени файла архива из следующего аргумента (-f). Альтернативным вариантом является замена последней команды на параметр -z утилиты tar, позволяющий автоматически сжать полученный архив с помощью gzip:

$ tar -cfz archive.tar.bz2<\p>

Примеры использования

1. Сжатие одного файла

$ gzip text.txt

В результате оригинальный файл text.txt будет заменен на свою сжатую версию text.txt.gz.

2. Одновременное сжатие нескольких файлов

$ gzip text1.txt text2.txt text3.txt

В этом случае также все оригинальные версии файлов (text1.txt, text2.txt, text3.txt) будут заменены на сжатые версии (text1.txt.gz, text2.txt.gz, text3.txt.gz). Добавление нескольких файлов в единый файл архива будет рассмотрено ниже.

3. Сжатие одного файла с сохранением оригинала

$ gzip -k text.txt

Теперь оригинальный файл text.txt будет оставлен в директории вместе со сжатой версией text.txt.gz.

4. Восстановление оригинальной версии файла из сжатой версии

$ gzip -d text.txt.gz

В результате сжатая версия файла text.txt.gz будет заменена на его оригинальную версию text.txt. Если вам нужно сохранить сжатую версию, следует воспользоваться параметром -k таким же образом, как было показано выше.

5. Сжатие файла с указанием степени сжатия

Степень сжатия файла может регулироваться с помощью параметров из диапазона от -1 (минимальная) до -9 (максимальная). Команда для сжатия файла с минимальной степенью сжатия:

$ gzip -1 text.txt

С максимальной степенью сжатия:

$ gzip -9 text.txt

При этом параметр -1 может заменяться на параметр —fast, а параметр -9 — на параметр —best.

6. Создание сжатого архива со всеми файлами из директории

$ tar -cfz etc.tar.bz2 /etc/

В результате будет создан архив etc.tar.gz с файлами из директории /etc/.

7. Проверка целостности сжатой версии файла

$ gzip -tv text.txt.gz
text.txt.gz: OK

Для проверки целостности сжатых версий файлов используются контрольные суммы (CRC). В случае повреждения сжатой версии файла выводится сообщение об ошибке, в противном случае — слово «OK».

8. Получение информации о сжатом файле

$ gzip -l enums.c.gz
compressed uncompressed ratio uncompressed_name
       253          371 38.8% enums.c

Очевидно, что в столбце compressed выводится размер сжатого файла в байтах, в столбце uncompressed — размер несжатого файла в байтах, в столбце ratio — степень сжатия файла, а в столбце uncompressed_name — имя оригинального файла. Вся эта информация хранится в заголовке сжатого файла.

Источник: https://linux-faq.ru/page/komanda-gzip

Как создать или распаковать архив в Linux

Рассмотрим на примерах работу архиваторов, таких как tar, zip, gzip и bzip2.
Немного теории. Что такое архив? Что такое метаданные?

А теперь практика.

tar

Исторически один из самых старый архиваторов в Linux. Как архиватора его роль сводится к объединению файлов в один архив, без компрессии(сжимания). При совместном использование с другим архиватором можно добиться хорошей компрессии файлов и каталогов.

Создание архива и распаковка tar:

tar -cf archive.tar folder/

Создает архив archive.tar, содержащий директорию folder/.

Извлекает содержимое архива archive.tar в текущую директорию.

Извлекает содержимое архива, сжатого gzip. Используйте -j вместо -z для архива bzip2.

Извлекает содержимое архива с детальным выводом процесса извлечения данных.

zip

zip может одновременно и архивировать, и сжимать файлы; то есть вы можете сжать различные файлы, поместив их при этом в архив. Он известен еще с 1998 года и метод его работы был реализован на многих платформах, следовательно, это один из самых мобильных вариантов (особенно — если вам необходим доступ к вашему архиву из системы Windows).

Работа с zip:

Создает архив archive.zip с содержимым каталога folder.

Извлекает содержимое архива archive.zip в текущую директорию, создавая вложенные директории (используйте -j чтоб не создавать вложенных директорий).

gzip

gzip может сжимать файлы, но не архивировать. Однако он прекрасно работает, если его использовать вместе с архивирующим инструментом — как бывает на практике, gzip и tar отлично работают вместе.

Архивирование gzip:

Сжимает файл file.tar и создает file.tar.gz.

tar czf file.tar.gz folder/

Архивирует и сжимает folder/ в файл file.tar.gz.

или

Распаковывает file.tar.gz

Распаковывает архив file.tar.gz и извлекает из него файлы.

bzip2

bzip2, как и gzip, сжимает, но не архивирует. И, опять-таки, он отлично работает с tar, если вы хотите получить и архивацию, и сжатие. Bzip2 сжимает лучше, чем gzip, но процесс сжатия у bzip2 занимает больше времени, чем у gzip.

Команды bzip2:

Сжимает файл file.tar и создает file.tar.bz2.

Распаковывает file.tbz и создает file.tar

Распаковывает архив file.tbz и извлекает из него файлы.

Источник: http://howtoconfig.net/linux/create-unzip-archive-linux/

10 команд tar с примерами для создания/распаковки архивов в Linux

TAR (ленточный архив) команда-это, часто используемая команда в Linux, которая позволяет Вам хранить файлы в архиве. Часто встречаются файлы с расширением .tar.gz и .tar.bz2, в которых tar архив сжимается с помощью gzip или bzip алгоритмов соответственно.

Использование команды tar

Команда tar работает по умолчанию в большинстве Linux-систем и Вам не нужно устанавливать его отдельно. По умолчанию есть 2 формата сжатия gzip и bzip. Буква «z» указывает параметр gzip и «j» опция указывает на bzip. Также можно создать несжатый архив.

Чаще всего используется извлечение tar архивов. Следующая команда должна извлечь файлы из tar.gz архива

$ tar -xvzf tarfile.tar.gzp

Вот краткое объяснение используемых параметров — х — извлечение файлов v – выводить  имена файлов как они извлекаются по одному z — это «сжатый» файл

f — использовать следующий tar архив для эксплуатации

Извлечение tar.bz2/bzip архивов

Файлы с расширением bz2 сжимаются при помощи алгоритма bzip, и tar команда может справиться с ними. Используйте j опцию вместо z опции.

$ tar -xvjf archivefile.tar.bz2

Чтобы извлечь файлы в определенном каталоге, необходимо указать путь с помощью «- с» вариант. Обратите внимание, что C не является разделом.

$ tar -xvzf abc.tar.gz -C /opt/folder/

Однако сначала убедитесь, что папка назначения существует, так как tar не будет создавать директорию, если ее нет.

Чтобы извлечь один файл из архива нужно просто добавить название файла после команды так:

$ tar -xz -f abc.tar.gz «./new/abc.txt»

Больше чем один файл может быть указан в предыдущей команде так

$ tar -xv -f abc.tar.gz «./new/cde.txt» «./new/abc.txt»

Подстановочные знаки можно использовать, чтобы извлечь кучу файлов, соответствующих заданному подстановочному знаку. Например, все файлы » txt» — расширения.

$ tar -xv -f abc.tar.gz —wildcards «*.txt»

Читайте также:  Установить dropbox в ubuntu/linux mint

Если вы хотите просто перечислить содержимое архива tar, а не извлекать их, можно использовать опцию  “-t”. Следующая команда распечатывает содержимое tar архива.

$ tar -tz -f abc.tar.gz ./new/ ./new/cde.txt ./new/subdir/ ./new/subdir/in.txt ./new/abc.txt …

Используя на v- опцию можно напечатать дополнительные сведения о каждом файле.

Для tar.bz2/bzip файлов используйте «j» опцию.

$ tar -tvz -f abc.tar.gz | grep abc.txt -rw-rw-r— enlightened/enlightened 0 2015-01-13 11:40 ./new/abc.txt

Теперь, когда мы научились извлекать существующий архив tar, самое время, чтобы начать создавать новые. Команда tar может быть использована для того чтобы отправить выбранные файлы в архив или целый каталог. Вот несколько примеров.

Следующая команда создает tar архив с помощью каталогов, добавляя все файлы в нем и подкаталоги

$ tar -cvf abc.tar ./new/ ./new/ ./new/cde.txt ./new/abc.txt

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

Для сжатия используйте опцию «z» или «j»  для gzip или bzip соответственно.

$ tar -cvzf abc.tar.gz ./new/

Полезная опция-это «w», которая заставляет tar запрашивать подтверждение для каждого файла перед добавлением их в архив. Это может быть иногда полезно.

Эти файлы будут добавлены в архив, если  дается ответ «да». По умолчанию стандартным ответом будет «нет».

# Добавить конкретные файлы $ tar -czw -f abc.tar.gz ./new/* add ‘./new/abc.txt’?y add ‘./new/cde.txt’?y add ‘./new/newfile.txt’?n add ‘./new/subdir’?y add ‘./new/subdir/in.txt’?n # Теперь список файлов, добавленных $ tar -t -f abc.tar.gz ./new/abc.txt ./new/cde.txt ./new/subdir/

Используя параметр r можно добавлять файлы в существующие архивы, без необходимости создавать новые. Вот быстрый пример

$ tar -rv -f abc.tar abc.txt

Файлы не могут быть добавлены в сжатые архивы (gz или bzip). Файлы могут быть добавлены в обычный архив tar.

Выше мы уже сказали, что файлы не могут быть добавлены в жатые архивы. Однако все же можно добавить файлы, в сжатые архивы, используя один трюк. Воспользуйтесь помощью gunzip команды,  чтобы распаковать архив, добавить файл в архив и сжать его заново.

$ gunzip archive.tar.gz $ tar -rf archive.tar ./path/to/file $ gzip archive.tar

Для bzip файлов используйте bzip2 и bunzip2 команд соответственно.

Реальный сценарий для резервного копирования каталогов через равные промежутки времени. Команда tar может планироваться на такие резервные копии с помощью cron. Вот пример —

$ tar -cvz -f archive-$(date +%Y%m%d).tar.gz ./new/

Выполните вышеуказанную команду через cron, и он будет продолжать создавать резервные копии файлов с именами как —

'archive-20150218.tar.gz'.

Параметр «W» может быть использован для проверки файлов после создания архива. Вот быстрый пример.

$ tar -cvW -f abc.tar ./new/ ./new/ ./new/cde.txt ./new/subdir/ ./new/subdir/in.txt ./new/newfile.txt ./new/abc.txt Verify ./new/ Verify ./new/cde.txt Verify ./new/subdir/ Verify ./new/subdir/in.txt Verify./new/newfile.txt Verify ./new/abc.txt

Обратите внимание, что проверка не может быть проведена в сжатых архивах. Он работает только с несжатыми tar архивами.

Источник: https://inside-it.ru/10-komand-tar-s-primerami-dlya-sozdaniya-raspakovki-arhivov-v-linux/

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

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

Al-Sher23 Feb 2018

Всем привет. Сегодня я хочу рассказать о архиваторах в системе 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.

Источник: https://web-wost.ru/arhivatory-v-linux/

Tar — как запаковать и распаковать tar gz и tar bz2

Что такое Tar

Tar — это популярный файловый архиватор в Unix/Linux системах.

Tar зачастую используется вместе с архиваторами GZip или BZip2, так как они отлично взаимодополняют друг друга: Tar не может сжимать файлы, только собирать их в одни архив, а GZip и BZip2 не могут сжимать несколько файлов одновременно, поэтому если вам нужно запаковать несколько файлов и директорий, сначала они собираются в один несжатый архив с помощью Tar, который сохранит их некоторые атрибуты, например такие, как права доступа, а затем этот архив сжимается с помощью GZip или BZip2. Весь процесс запускается одной консольной командой, про которые далее.

Как установить, создать архив Tar и распаковать его в Windows

Чтобы использовать Tar в Windows, нужно воспользоваться одним из следующих вариантов:

  1. Установить Far Manager.
    Инструкция по созданию и распаковке архива .tar с помощью Far Manager:
    • Теперь просто выделяете ПКМ (правой кнопкой мыши) или кнопкой клавиатуры Insert нужные вам файлы и папки и жмёте Shift + F1, затем выбираете нужный формат (в нашем случае, TAR) и создаёте архив:

      Создание архива в Far Manager

      При желании, в поле Добавить к архиву можно изменить название архива, а в поле Ключи можно ввести пароль от него.

    • Чтобы распаковать архив Tar, просто выделяете ПКМ или Insert нужный архив и жмёте Shift + F2

      Как распаковать Tar в Far Manager

      В поле Распаковать в вводится путь, куда распаковать архив. Если нужно распаковать в текущую папку, нужно оставить поле Распаковать архив пустым. Если архив запаролен, пароль вводится в поле Пароль.

  2. Также, можно обойтись без Far Manager, установив 7-Zip

    Скачать 7-zip архиватор

    Всё управление — создать архив и распаковать его — через ПКМ и Проводник Windows

Как запаковать архив tar.gz и tar.bz2 в Ubuntu, Debian, CentOS

tar cfvz archive.tar.gz *.php

где tar — команда, cfvz — ключи, archive.tar.gz — имя будущего архива, *.php — список файлов, которые нужно заархивировать.
Список можно заменить директорией, которую нужно запаковать целиком, для этого указываем путь до неё, абсолютный или относительный

tar cfvz archive.tar.gz /forpack

Теперь подробнее про ключи

  • -с — команда, которая означает «создать архив»
  • -f — команда на упаковку файлов и директорий в один файл архива
  • -v — включает визуальное отображение процесса архивации
  • -z — использовать для сжатия GZip

Также, можно использовать для сжатия BZip2. Для этого нужно использовать ключ -j вместо -z.
В этом случае, команда для запаковки tar.bz2 будет выглядеть так

tar cfvj archive.tar.bz2 /forpack

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

Чтобы исключить определённый каталог или файл из архива, можно воспользоваться ключом —exclude.
Сначала переходим в нужный каталог, затем используем следующую команду:

tar cfvz wp-content.tgz wp-content —exclude=wp-content/updraft —exclude=wp-content/uploads —exclude=wp-content/cache

Тут мы запаковываем каталог /wp-content/ на WordPress, исключая раздел Updraft wp-content/updraft, раздел Загрузки wp-content/uploads и Кеш wp-content/cache.

Как распаковать архив tar.gz и tar.bz2 Ubuntu, Debian, CentOS

Чтобы распаковать архив tar.gz или tar.bz2, в команде нужно заменить -с на ключ -x, а также указать путь до архива, абсолютный или относительный
Команда для распаковки архива в текущую директорию выглядит так

tar xfvz archive.tar.gz

С помощью ключа -С можно указать путь, куда нужно распаковать архив

tar xfvj archive.tar.bz2 -C /var/www

Просмотр архивов tar в Linux

Для просмотра содержимого архивов можно использовать ключ -t

tar -tf archive.tar.bz2

Будет выведен список файлов и директорий в архиве. При добавлении ключа -v также будет выведена подробная служебная информация о правах доступа, размерах файлов и прочем.

Иные возможности tar

Tar имеет много дополнительных возможностей, к примеру, добавление файлов в существующий архив, исключение некоторых файлов и директорий при запаковке архива и так далее. Подробнее вы можете узнать о них при помощи команды

tar —help(3

Источник: https://sheensay.ru/tar

Ссылка на основную публикацию