Создание сжатого архива linux

Как заархивировать файлы и каталоги в Linux

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

Zip-файл — это контейнер данных, содержащий один или несколько сжатых файлов или каталогов. Сжатые (заархивированные) файлы занимают меньше места на диске, их можно перенести с одного компьютера на другой быстрее, чем несжатые файлы. Zip-файлы можно легко извлечь в Windows, macOS и Linux с помощью утилит, доступных для всех операционных систем.

В этом руководстве мы покажем вам, как архивировать (сжимать) файлы и каталоги в Linux с помощью команды zip .

zip Команда

zip — это утилита командной строки, которая помогает создавать Zip-архивы.

Команда zip имеет следующий синтаксис:

Чтобы создать Zip-архив в определенном каталоге, пользователю необходимо иметь права на запись в этот каталог.

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

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

Утилита zip не устанавливается по умолчанию в большинстве дистрибутивов Linux, но вы можете легко установить ее с помощью диспетчера пакетов вашего дистрибутива.

Установите Zip в Ubuntu и Debian

Установите Zip на CentOS и Fedora

Как архивировать файлы и каталоги

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

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

При указании имени архива Zip, если вы опускаете расширение .zip оно будет добавлено автоматически, если имя архива не содержит точки. zip archivename.zip filename создаст архив с тем же именем, что и zip archivename filename .

Чтобы подавить вывод команды zip , используйте параметр -q :

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

Чтобы создать Zip-архив каталога, вы должны использовать:

Вы также можете добавить несколько файлов и каталогов в один архив:

Методы и уровни сжатия

Метод сжатия Zip по умолчанию — deflate . Если утилита zip определяет, что файл нельзя сжать, она просто сохраняет файл в архиве, не сжимая его с помощью метода store . В большинстве дистрибутивов Linux утилита zip также поддерживает метод сжатия bzip2 .

Чтобы указать метод сжатия, используйте параметр -Z .

Команда zip позволяет указать уровень сжатия с помощью числа с префиксом от 0 до 9. Уровень сжатия по умолчанию -6 . При использовании -0 все файлы будут сохраняться без сжатия. -9 заставит команду zip использовать оптимальное сжатие для всех файлов.

Например, чтобы использовать уровень сжатия -9 , введите что-то вроде этого:

Чем выше уровень сжатия, тем интенсивнее процесс архивирования, и для его завершения потребуется больше времени.

Создание ZIP-файла, защищенного паролем

Если у вас есть конфиденциальная информация, которую необходимо сохранить в архиве, вы можете зашифровать ее с помощью параметра -e :

Вам будет предложено ввести и подтвердить пароль архива:

Создание разделенного Zip-файла

Представьте, что вы хотите сохранить Zip-архив на сервисе хостинга файлов, который имеет ограничение на размер загружаемого файла 1 ГБ, а ваш Zip-архив — 5 ГБ.

Вы можете создать новый разделенный Zip-файл, используя параметр -s с указанием размера. Множитель может быть k (килобайты), m (мегабайты), g (гигабайты) или t (терабайты).

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

Примеры ZIP

Создайте Zip-архив с именем archivename.zip, содержащий все файлы в текущем каталоге.

То же, что и выше, включая скрытые файлы (файлы, начинающиеся с точки):

Создайте Zip-архив с именем archivename.zip содержащий все файлы MP3 в текущем каталоге, без сжатия файлов.

Выводы

В Linux вы можете создавать Zip-архивы с помощью команды zip .

Читайте также:  Клеш рояль для windows

Чтобы распаковать ZIP-архив в системе Linux, вы можете использовать команду unzip .

Если вы хотите узнать больше о Zip, посетите страницу Zip Man .

Источник

АРХИВАЦИЯ ФАЙЛОВ В LINUX

В наши дни мы сталкиваемся с файлами архивов очень часто и на всех платформах: Windows, Mac или Linux. Это могут быть программы, резервные копии систем или баз данных или просто архив файлов. Нам также часто приходится создавать свои архивы в Linux, чтобы передать несколько файлов друзьям или загрузить на файлообменник. В виде архивов распространяются пакеты программ, исходные коды, а также много других файлов, распространяемых на просторах интернета. Научиться выполнять архивирование файлов в Linux через терминал очень важно, возможно это вам понадобиться, когда не будет доступа к графическому интерфейсу, или просто со временем в терминале станет более приятно работать.

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

АРХИВИРОВАНИЕ В LINUX

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

Самой популярной для Linux утилитой для архивации есть tar. Она используется почти везде, для архивации исходников, упаковки пакетов. Для сжатия используются другие утилиты, в зависимости от алгоритма сжатия, например, zip, bz, xz, lzma и т д. Сначала выполняется архивация, затем сжатие, отдельными программами. Автоматический запуск некоторых утилит сжатия для только что созданного архива поддерживается в tar и других подобных программах с помощью специальных опций.

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

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

$ tar опцииf файл_для_записи /папка_файлами_для_архива

А теперь разберем основные опции:

  • A — добавить файл к архиву
  • c — создать архив в linux
  • d — сравнить файлы архива и распакованные файлы в файловой системе
  • j — сжать архив с помощью Bzip
  • z — сжать архив с помощью Gzip
  • r — добавить файлы в конец архива
  • t — показать содержимое архива
  • u — обновить архив относительно файловой системы
  • x — извлечь файлы из архива
  • v — показать подробную информацию о процессе работы
  • f — файл для записи архива
  • -C — распаковать в указанную папку
  • —strip-components — отбросить n вложенных папок

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

tar -cvf archive.tar.gz /path/to/files

А чтобы распаковать архив tar linux:

tar -xvf archive.tar.gz

Очень просто запомнить для упаковки используется опция cCreate, а для распаковки — x — eXtract.

Сжатый архив создается точно так же, только с опцией -z, это в случае, если использовалось шифрование gizp, если нужно bzip то применяется опция -j:

tar -zcvf archive.tar.gz /path/to/files

tar -zxvf archive.tar.gz

Например, рассмотрим как заархивировать папку в Linux:

tar -zcvf home.tar.gz

Хотя можно поступить по-другому, тот же архив мы получим если сначала создать обычный архив с помощью tar, а потом сжать его утилитой для сжатия, только здесь мы получаем больше контроля над процессом сжатия:

Также можно убрать сжатие:

Утилиты сжатия мы рассмотрим ниже.

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

tar -rvf archive.tar file.txt

Для извлечения одного файла синтаксис тот же:

tar -xvf archive.tar file.txt

Можно извлечь несколько файлов по шаблону соответствия с помощью параметра wildcard, например, извлечем все php файлы:

tar -xvf archive.tar —wildcards ‘*.php’

По умолчанию распаковать архив tar linux можно в текущую папку с именем архива, чтобы распаковать в нужную папку используйте ключ -C:

tar -xvf archive.tar -C /path/to/dir

Стандартную утилиту рассмотрели, теперь кратко рассмотрим ее альтернативы. Их не так много, и большинство из них уже устаревшие.

Shar позволяет создавать самораспаковывающиеся архивы. По сути, это скрипт оболочки, и для распаковки ему необходима оболочка Bash или другая совместимая с Bourne Shell. У Shar есть несколько преимуществ, но также он потенциально небезопасный, так как архив представляет собой исполняемый файл.

  • -o — сохранять архив в файл вместо стандартного вывода
  • -l — ограничить размер выходного файла
  • -L — ограничить размер выходного файла и разбить его на части
  • -n — имя архива не будет включено в заголовок
  • -a — разрешить автоматическую генерацию заголовков
Читайте также:  Windows task manager processes cpu usage

Примеры использования shar для того чтобы заархивировать папку linux:

Создаем shar архив:

shar file_name.extension > filename.shar

Распаковываем shar архив:

ar — утилита для создания и управления архивами. В основном используется для архивации статических библиотек, но может быть использована для создания любых архивов. Раньше использовалась довольно часто но была вытеснена утилитой tar. Сейчас используется только для создания и обновления файлов статических библиотек.

  • — d — удалить модули из архива
  • — m — перемещение членов в архиве
  • — p — напечатать специфические члены архива
  • — q — быстрое добавление
  • — r — добавить члена к архиву
  • — s — создать индекс архива
  • — a — добавить новый файл к существующему архиву

Теперь рассмотрим примеры использования. Создадим статическую библиотеку libmath.a из объектных файлов substraction.o и division.o:

ar cr libmath.a substraction.o division.o

Теперь извлечем файлы из архива:

Таким образом, можно распаковать любую статическую библиотеку.

cpio — означает Copy in and out (скопировать ввод и вывод). Это еще один стандартный архиватор для Linux. Активно используется в менеджере пакетов Red Hat, а также для создания initramfs. Архивация в Linux для обычных файлов с помощью этой программы не применяется.

  • -a — сбросить время обращения к файлам после их копирования
  • -A — добавить файл
  • -d — создать каталоги при необходимости

Пример использования. Создаем cpio архив:

file1.o file2.o file3.o

ls | cpio -ov > /path/to/output_folder/obj.cpio

Архивирование папки linux выполняется также само.

СЖАТИЕ АРХИВОВ В LINUX

Как создать архив в linux рассмотрели. Теперь давайте поговорим о сжатии. Как я говорил, для сжатия используются специальные утилиты. Рассмотрим кратко несколько из них

Чаще всего применяется Gzip. Это стандартная утилита сжатия в Unix/Linux. Для декомпрессии используется gunzip или gzip -d Сначала рассмотрим ее синтаксис:

$ gzip опции файл

$ gunzip опции файл

Теперь разберем опции:

  • -c — выводить архив в стандартный вывод
  • -d — распаковать
  • -f — принудительно распаковывать или сжимать
  • -l — показать информацию об архиве
  • -r — рекурсивно перебирать каталоги
  • -0 — минимальный уровень сжатия
  • -9 — максимальный уровень сжатия

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

gzip -c файл > архив.gz

А теперь распакуем:

gunzip -c архив.gz

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

bzip2 — еще одна альтернативная утилита сжатия для Linux. Она более эффективная чем gzip, но работает медленнее. Для распаковки используйте утилиту bunzip2.

Описывать опции bzip2 я не буду, они аналогичны gzip. Чтобы создать архив в Linux используйте:

В текущем каталоге будет создан файл file.bz2

Новый и высокоэффективный алгоритм сжатия. Синтаксис и опции тоже похожи на Gzip. Для распаковки используйте unlzma.

Еще один высокоэффективный алгоритм сжатия. Обратно совместимый с Lzma. Параметры вызова тоже похожи на Gzip.

Кроссплатформенная утилита для создания сжатых архивов формата zip. Совместимая с Windows реализациями этого алгоритма. Zip архивы очень часто используются для обмена файлами в интернете. С помощью этой утилиты можно сжимать как файлы, так и сжать папку linux.

$ zip опции файлы

$ unzip опции архив

  • -d удалить файл из архива
  • -r — рекурсивно обходить каталоги
  • -0 — только архивировать, без сжатия
  • -9 — наилучший степень сжатия
  • -F — исправить zip файл
  • -e — шифровать файлы

Чтобы создать Zip архив в Linux используйте:

zip -r /path/to/files/*

А для распаковки:

Как видите архивирование zip в Linux не сильно отличается от других форматов.

Источник

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

Архивирование и сжатие файлов позволят хранить те же самые данные при меньших затратах такого ресурса как постоянное хранилище (жёсткий диск, сменный накопитель, оптический диск и т. д.). Благодаря уменьшению размера, достигается не только экономия места на диске, но и ускорение передачи файлов по сети. В настоящее время, когда Интернет стал очень быстрым, а постоянные хранилища весьма объёмными и намного более дешёвыми чем в прошлом, важность сжатия файлов утратила свою прежнюю актуальность. Тем не менее, экономию места никто не отменял, да и зачастую нам приходится работать с уже сжатыми файлами, полученными из разных источников. Уже хотя бы поэтому необходимо иметь общее представления о работе с архивами в Linux: знать как их создавать, как их распаковывать, понимать разницу между архивированием и сжатием.

Читайте также:  Принтер xerox phaser 3117 драйвера для windows

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

Оцените статью