Распаковка ZIP Linux
Формат ZIP был создан в 1989 году на замену очень медленному формату ARC. Здесь используется сжатие deflate, и на то время оно работало намного быстрее чем ARC. Исторически сложилось так, что стандартным форматом для Linux стали TAR и GZ — это усовершенствованные алгоритмы сжатия и архивации. Многие графические распаковки воспринимают и ZIP-файлы. Но они обрабатывают архивы не сами, а дают команду предназначенным для этого формата утилитам.
Утилита для распаковки ZIP называется unzip, она не всегда установлена по умолчанию. Но вы можете очень просто добавить её в свою систему из официальных репозиториев. Для этого в Ubuntu выполните:
А в системах, использующих формат пакетов Red Hat, команда будет выглядеть немного по-другому:
После установки большинство графических утилит для работы с архивами смогут распаковать архив ZIP Linux. Команда ZIP Linux установлена на случай, если вы захотите создавать ZIP-архивы.
Но этой утилите не нужны дополнительные оболочки для распаковки архива. Вы можете сделать всё прямо из консоли. Давайте рассмотрим синтаксис утилиты:
$ unzip опции файл_архива.zip файлы -x исключить -d папка
- файл архива — это тот файл, с которым нам предстоит работать;
- файлы — здесь вы можете указать файлы, которые нужно извлечь, разделять имена файлов пробелом;
- исключить — файлы, которые извлекать не нужно;
- папка — папка, в которую будет распакован архив.
Теперь рассмотрим опции утилиты, поскольку она позволяет не только распаковывать архивы, но и выполнять с ними определённые действия:
- — l — вывести список файлов в архиве;
- — t — протестировать файл архива на ошибки;
- — u — обновить существующие файлы на диске;
- — z — вывести комментарий к архиву;
- — c — извлекать файлы на стандартный вывод, перед каждым файлом будет выводиться его имя;
- — p — то же самое, только имя выводится не будет;
- — f — извлечь только те файлы, которые уже существуют на диске, и файлы в архиве более новые;
- — v — вывести всю доступную информацию;
- — P — указать пароль для расшифровки архива;
- — n — не перезаписывать существующие файлы;
- — j — игнорировать структуру архива и распаковать всё в текущую папку;
- — q — выводить минимум информации.
Все самые основные опции рассмотрели, теперь давайте рассмотрим несколько примеров работы с программой в терминале. Чтобы распаковать ZIP Linux в текущую папку, достаточно набрать:
Причём расширение указывать не обязательно. Протестировать архив можно с помощью опции -t:
Вы можете протестировать все архивы в текущей папке, выполнив:
Если нужно распаковывать архив не в текущую папку, можно очень просто указать нужную:
Также можно распаковывать не весь архив, а только нужные файлы или файлы нужного формата:
С помощью опции -l вы можете посмотреть список файлов в архиве:
Утилиту unzip разобрали и теперь вы с ней точно справитесь. Но я говорил, что мы рассмотрим несколько способов, как выполняется распаковка ZIP Linux. Поэтому дальше мы поговорим об утилите 7z.
Демонстрация работы утилит zip и unzip в терминале:
Синтаксис
Стоит отметить, что первоначально утилита была предназначена для архивации информационных данных на различных устройствах ленточного типа. Команда давала возможность сохранять вывод в файловой области, широко использовалась согласно своему назначению.
Утилита, которая применяется для создания и извлечения различных типов файлов, ничем не отличается от классических архиваторов. Синтаксис команд весьма прост.
Рассмотрим синтаксис.
Создание архива:
Распаковка:
Утилита отличается хорошей производительностью и функциональностью. Существует определенный список опций, которые поддерживает эта команда:
- «-А». Присоединение имеющегося архива к стороннему архиву.
- «-с». Создание нового сжатого файла.
- «-d». Определение отличий между двумя определенными архивами, удаление документов.
- «-r». Присоединение файлов к архиву. Они располагаются в конце.
- «-t». Формирование перечня содержимого в архиве.
- «-u». Обновление архивных данных, дополнение данными с аналогичными именами.
- «-х». Извлечение требуемых документов из архива.
После того, как определились с конкретной функцией, можно ввести дополнительные параметры. Они регламентируют осуществление определенной операции, касающейся данных:
- «-С» (—directory=DIR). Изменение адреса каталога перед проведением мероприятий на dir.
- «-f» (—file). Вывод результата в определённый файл или на конкретное устройство.
- «-j» (—bzip2). Перенаправление вывода информации к bzip2.
- «-p» (—same-permissions). Сохранение доступности относительно определенного документа.
- «-v». (—verbose; —totals). Вывод подробных данных о совершаемых или уже завершенных процессах.
- «-z». (—gzip). Перенаправление вывода на gzip.
Создание
Для первого примера, создадим новый архив newarhiv.tar из одного документа /root/catalog/test.
С помощью команды cd зайдем в директорию /root/catalog.
Далее будем использовать функцию «-c» создание нового архива, параметр «-v» вывод подробной информации, «-f» результат записать в документ.
Здесь:
- «-cvf» — функция и опции.
- «newarhiv.tar» — название нового сжатого документа.
- «test» — название файла, который нужно запаковать.
Если требуется запаковать несколько документов, то будет выглядеть так:
test2 test3
Запакуем tar.gz все файлы в каталоге «/root/catalog» . Для этого необходимо использовать аргумент «-z» (gzip).
tar/bz2
Файлы в формате bz2 сжимаются лучше, чем gz, соответственно занимают меньше места.
Запакуем документ «newfile» в каталоге «/root/primercataloga» в формате bz2. Для этого будем использовать аргумент «-j»
Просмотр
Откроем newarhiv.tar для просмотра. Для этого, необходимо использовать аргумент «-t».
Просмотр tar.gz
Откроем oldfile.tar.gz для просмотра. Синтаксис команды тот же, что и при открытии простого «.tar».
Просмотр bz2
Откроем документ oldfile.tar.bz2.
Распаковка
Для извлечения определенного файлового архива потребуется использование функции «х». Извлечем документ newarhiv.
Разархивируем единичный файл
Чтобы разархивировать единичный документ, нужно просто добавить его в конец команды.
Для примера, требуется распаковать файл test из архива arhiv.tar.
Извлекаем отдельный документ tar.gz
Представим для примера, что требуется распаковать index.php из site.tar.bz2. Для этого стоит указать в командной строке:
Что такое команда Tar?
Команда tar используется для создания архивов tar, путем преобразования группы файлов в архив. Она также имеет возможность извлекать архивы tar, отображать список файлов, включенных в архив, добавлять дополнительные файлы в существующий архив, а также различные другие виды операций.
Tar поддерживает широкий спектр программ сжатия , таких как gzip, bzip2, lzip, lzma, lzop, xzи compress. При создании сжатых tar-архивов принято считать добавление суффикса компрессора к имени файла архива. Например, если архив был сжат с помощью gzip, он должен быть назван archive.tar.gz.
Tar был первоначально разработан для создания архивов при хранения файлов на магнитной ленте, поэтому он имеет свое название « T ape AR chive».
Существуют две версии tar, BSD tar и GNU tar с некоторыми функциональными отличиями. Большинство систем Linux поставляются с предустановленной GNU tar по умолчанию. Если у вас не установлен tar, рекомендуем сначало установить его следую нашей статьи как установить tar.gz в CentOS.
Что такое файлы TAR?
Аббревиатура tar предназначена для иллюстрации того, что отдельные файлы GZIP были сжаты настолько широко и максимально плотно, насколько это возможно. Упакованный файл может заканчиваться на .tar.gz и .tar.bz2. Иногда используется двойное окончание – .tar.gz. ZIP, который был разработан для слияния и сжатия, но оказался более мощным и поэтому в значительной степени подавляет файл .tar.
Как можно догадаться по двойному расширению формата, состоящему из двух файлов, это фактически два в одном. TAR объединяет несколько объектов данных в один пакет под систему Windows. Это полезно, если, например, необходимо отправить несколько документов, изображений или предложить их для загрузки.
Расширения в формате .tar в основном предназначены для операционной системы Linux. В мире Windows они довольно необычны и редко встречаются. По этой причине система не может открыть эти файлы без дополнительного программного обеспечения.
Что такое tar.gz?
Tar.gz – это архив созданный программой Tar, и после этого заархивированный программой Gzip. Такая двойная архивация обусловлена тем, что программа Gzip сжимает хорошо и быстро, но делает это только с одним файлом. Поэтому чтобы запаковать несколько файлов, для начала из них создается один tar-архив, а после этого он уже пакуется программой Gzip. Причем стоит отметить, что первичный архив tar практически не сжимает информацию, а лишь объединяет ее в один файл. В конечном варианте мы получаем архив с двойным расширением filename.tar.gz или filename.tgz
Где используют эти архивы tar.gz?
Как правило их используют для создания резервной копии сайта на хостинге под управлением UnixLinux.
В следующем списке перечислены программы, совместимые с файлами TAR, которые разделены на категории 3 в зависимости от операционной системы, в которой они доступны. TAR файлы можно встретить на всех системных платформах, включая мобильные, но нет гарантии, что каждый из них будет должным образом поддерживать такие файлы.
Установка из tar gz в Ubuntu
Я предполагаю, что архив с исходниками у вас уже есть, теперь можно переходить к сборке программы и установке tar.gz Ubuntu
Неважно в какой папке будет находиться архив, главное, чтобы вы знали где. Первой командой, которую мы выполним будет переход в папку с архивом:
Дальше извлечем исходники из архива с программой:
И переходим в папку с только что полученными исходными файлами:
Обычно программы в Linux состоят из большого количества файлов, и при их сборке нужны различные параметры и опции, поэтому вместо того, чтобы запускать компилятор для каждого из файлов вручную, в Linux используется утилита make. Она на основе файла Makefile подбирает правильные команды компиляции для каждого файла и собирает всю программу.
Программы часто используют внешние библиотеки, а в разных дистрибутивах путь к файлам библиотек разный, поэтому перед тем, как запускать make нужно выполнить скрипт configure для проверки зависимостей. Этот скрипт можно создать на основе файла configure.in. Но это необязательно, во многих программах скрипт конфигурации не предусмотрен и программа не требует проверки зависимостей перед сборкой, тогда файла configure.in просто нет в папке с исходниками. Если так, то просто пропустите следующие инструкции и переходите к сборке.
Скрипт configure можно создать несколькими способами, сначала попытаемся выполнить следующие скрипты:
Если же этих скриптов не оказалось в исходниках, просто последовательно выполните следующие команды:
Если все прошло успешно установка из исходников Ubuntu может быть продолжена. Теперь, наверное, самое сложное, запускаем configure:
Если скрипт обнаружит что какой-то библиотеки нет (File имя_файла_библиотеки.so not found), скомпилировать пакет не получится, берем название библиотеки и ищем в Google как называется ее пакет в Ubuntu, а затем устанавливаем его через apt-get. Обычно это libимя_библиотеки или libимя_библиотеки-dev.
Например, нам не хватало libfuse.so. С помощью поисковой системы мы узнали, что эта библиотека есть в пакете libfuse. Теперь просто ее установим:
Затем опять выполняете configure, чтобы посмотреть нет ли других неразрешенных зависимостей. И повторяете все до тех пор, пока не увидите слово Sucessful или Complete в конце вывода скрипта.
И только теперь установка tar.gz в Ubuntu может быть продолжена и программа собрана. Команда make скомпилирует программу из исходников, а скрипт checkinstall соберет deb пакет:
Самое сложное уже позади, на этом этапе ошибки почти никогда не возникают.
И только теперь мы получили программу, которую можно устанавливать с помощью центра приложений или в терминале. Установка с помощью dpkg будет выглядеть вот так:
Точно так же ее можно установить любым доступным способом. Теперь это самый обычный пакет. Вы можете не только установить программу из tar.gz, но и скинуть готовый пакет своим друзьям.
How to Extract (Unzip) Tar Gz File
21 Июня 2020
|
Терминал
В этом руководстве мы покажем вам, как извлечь (распаковать) архивы tar. gz и tgz .
Если вы путешествуете по миру с открытым исходным кодом, скорее всего, вы регулярно сталкиваетесь с файлами .tar.gz . Пакеты с открытым исходным кодом обычно доступны для скачивания в форматах .tar.gz и .zip.
Команда используется для создания архивов tar путем преобразования группы файлов в архив. Он поддерживает широкий спектр программ сжатия, таких как gzip, bzip2, lzip, lzma, lzop, xz и compress. Изначально Tar был предназначен для создания архивов для хранения файлов на магнитной ленте, поэтому он имеет название « T ape AR chive».
Gzip — самый популярный алгоритм сжатия файлов tar. По соглашению имя архива tar, сжатого с помощью gzip, должно заканчиваться на .tar.gz или .tgz .
Короче говоря, файл, который заканчивается на .tar.gz, является архивом .tar, сжатым с помощью gzip.
Команда также может быть использована для извлечения битуминозных архивов, отобразить список файлов , входящих в архив, добавить дополнительные файлы в существующий архив, а также различные другие виды операций.E»
Извлечение файла tar.gz
Большинство дистрибутивов Linux и macOS поставляются с командой tar, предварительно установленной по умолчанию.
Чтобы извлечь файл tar.gz, используйте оператор ( ) и укажите имя файла архива после параметра:
Команда автоматически определит тип сжатия и извлечет архив. Эту же команду можно использовать для извлечения архивов tar, сжатых с помощью других алгоритмов, таких как .tar.bz2 .
Если вы пользователь Desktop, а командная строка — не ваша вещь, вы можете использовать диспетчер файлов. Чтобы извлечь (распаковать) файл tar.gz, просто щелкните правой кнопкой мыши файл, который вы хотите извлечь, и выберите «Извлечь». Пользователям Windows потребуется инструмент с именем 7zip для извлечения файлов tar.gz.
Опция сделает команду более заметной и напечатать имена файлов извлекаются на терминале.
По умолчанию будет извлекаться содержимое архива в текущем рабочем каталоге . Используйте ( ) для извлечения архивных файлов в определенном каталоге:
Например, чтобы извлечь содержимое архива в каталог, вы можете использовать:
Извлечение определенных файлов из файла tar.gz
Чтобы извлечь определенный файл (ы) из файла tar.gz, добавьте разделенный пробелами список имен файлов, которые будут извлечены после имени архива:
При извлечении файлов вы должны указать их точные имена, включая путь, как указано в ( ).
Извлечение одного или нескольких каталогов из архива аналогично извлечению файлов:
Если вы попытаетесь извлечь файл, который не существует, появится сообщение об ошибке, подобное следующему:
Вы также можете извлечь файлы из файла tar.gz на основе шаблона с подстановочными знаками, используя опцию и заключив в кавычки шаблон, чтобы предотвратить интерпретацию оболочкой.
Например, чтобы извлечь файлы, имена которых заканчиваются (файлы Javascript), вы должны использовать:
Извлечение файла tar.gz из stdin
Если вы извлекаете сжатый файл tar.gz, читая архив из stdin (обычно через канал), вам нужно указать опцию распаковки. Опция, которая указывает tar читать архивы через gzip — это .
В следующем примере мы загружаем исходные тексты Blender с помощью команды и направляем их вывод в команду:
Если вы не укажете опцию декомпрессии, укажите, какую опцию вам следует использовать:
Перечисление файла tar.gz
Чтобы просмотреть содержимое файла tar.gz, используйте параметр ( ):
Вывод будет выглядеть примерно так:
Если вы добавите параметр ( ), будет напечатано больше информации, такой как владелец, размер файла, отметка времени .. и т. Д .:
Файл tar.gz представляет собой архив Tar, сжатый с помощью Gzip. Чтобы извлечь файл tar.gz, используйте команду с именем архива.
Описание ключей tar
Команды для действия
Ключ | Описание |
---|---|
-A | Добавление файлов в архив. |
-c | Создание нового архивного файла. |
-d | Показать отличающиеся данные между каталогом-исходником и содержимым архива. |
—delete | Удалить файлы внутри архива. |
-r | Добавить файлы в конец архива. |
-t | Показать содержимое архива. |
-u | Добавить файлы, которых нет в архиве. |
-x | Извлечь файлы из архива. |
* нельзя использовать несколько вышеперечисленных ключей в одной команде.
Дополнительные опции
Ключ | Описание |
---|---|
—atime-preserve | Оставить прежнюю метку времени доступа для файла. |
-b N | Задать размер блока N x 512. |
-C | Смена каталога. По умолчанию, используется тот, в котором мы находимся. |
—checkpoint | Показать имена папок при чтении архивного файла. |
-G | Использование старого формата инкрементального резервирования при отображении или извлечения. |
-g | Использование нового формата инкрементального резервирования при отображении или извлечения. |
-h | Не дублировать символьные ссылки. Только файлы, на которые указывают эти симлинки. |
-i | Игнорировать блоки нулей. |
-j | Использование bzip2. |
—ignore-failed-read | Игнорировать не читаемые файлы. |
-k | При распаковке, существующие файлы не заменяются соответствующими файлами из архива. |
-L N | Смена магнитной ленты после N*1024 байт. |
-m | При извлечении игнорировать время модификации объекта. |
-M | Многотомные архивы. |
-N DATE | Сохранять только более новые файлы относительно DATE |
-O | Направление извлекаемого на стандартный вывод. |
-p | Извлечение защищенной информации. |
-P | Не отбрасывает начальный слэш (/) из имен. |
-s | Сортировка файлов при извлечении. |
—preserve | Аналогично -ps |
—remove-files | Удалить исходные файлы после добавления в архив. |
—same-owner | Сохранить владельца при извлечении. |
—totals | Вывод байт при создании архива. |
-v | Протоколирование действий — отображение списка объектов, над которыми происходит действие. |
-V NAME | Создание архива на томе с меткой NAME. |
—version | Показать версию tar. |
-w | Требовать подтверждения для каждого действия. |
-W | Проверка архива после записи. |
—exclude FILE | Исключить файл FILE. |
-X FILE | Исключить файлы FILE. |
-Z | Фильтрует архив с помощью compress. |
-z | Использование gzip. |
* актуальный список опций можно получить командой man tar.
Извлечение архивов .tar.gz, .tgz, .gz с помощью tar в Windows 10
Чтобы извлечь файлы .tar.gz, .tgz, .gz, а также .zip с помощью tar в Windows 10 , выполните следующие действия:
- Откройте Пуск в Windows 10.
- Найдите командную строку, щелкните правой кнопкой мыши верхний результат и выберите параметр «Запуск от имени администратора».
- Введите следующую команду, чтобы использовать tar для извлечения файлов, и нажмите Enter:
tar -xvzf C:\PATH\TO\FILE\FILE-NAME.tar.gz -C C:\PATH\TO\FOLDER\EXTRACTION
После выполнения этих шагов через несколько секунд все файлы и папки будут извлечены по указанному вами пути назначения.
Предполагается, что вы распаковываете архив, созданный в другой системе. Мы пропускаем некоторые аргументы, которые обычно необходимы для сохранения разрешений, которые в Windows 10 не нужны для доступа к файлам.
Ar
ar — утилита для создания и управления архивами. В основном используется для архивации статических библиотек, но может быть использована для создания любых архивов. Раньше использовалась довольно часто но была вытеснена утилитой tar. Сейчас используется только для создания и обновления файлов статических библиотек.
Опции Ar:
- — d — удалить модули из архива
- — m — перемещение членов в архиве
- — p — напечатать специфические члены архива
- — q — быстрое добавление
- — r — добавить члена к архиву
- — s — создать индекс архива
- — a — добавить новый файл к существующему архиву
Теперь рассмотрим примеры использования. Создадим статическую библиотеку libmath.a из объектных файлов substraction.o и division.o:
Теперь извлечем файлы из архива:
Таким образом, можно распаковать любую статическую библиотеку.
Примеры
gz
Распаковка .gz файла:
tar -xvf archive.tar.gz
* при возникновении ошибки This does not look like a tar archive, можно воспользоваться командой gzip -d archive.tar.gz.
bz2
tar -xvjf archive.tar.bz2
* ключ j отвечает за работу с bz2.
Если система ругается на bzip2, значит нужно его установить:
yum install bzip2
apt-get install bzip2
pkg install bzip2
* соответственно, для CentOS (RPM based), Ubuntu (deb based), FreeBSD (BSD based).
Если видим ошибку tar: Unrecognized archive format, воспользуемся следующей командой:
bzip2 -d archive.tar.bz2
tar -xvzf archive.tar.gzip
* ключ z отвечает за работу с gzip.
Распаковывается, как gzip:
tar -xvzf archive.tgz
Распаковать в определенную папку
tar -C /home/user -xvf archive.tar.gz
* ключ -C используется для указания папки, куда необходимо распаковать файлы из архива.
Распаковка без вложенной папки
Такой способ можно использовать для распаковки в заранее подготовленный каталог. Будет некий эффект переименовывания каталога или аналог «Распаковать здесь»:
tar -C /home/admin/mytar -xvf admin.tar.gz —strip-components 1
* каталог /home/admin/mytar заранее должен быть создан; —strip-components 1 пропустит одну вложенную папку внутри архива.
Исключение файлов по маске
Если необходимо пропустить некоторые файлы, вводим команду с ключом —exclude:
tar —exclude=’sess_*’ -czvf archive.tar.gz /wwwsite
* в данном примере мы создадим архив archive.tar.gz, в котором не будет файлов, начинающихся на sess_.
Также можно исключить несколько файлов или папок, добавляя несколько опций exclude:
tar —exclude=’/data/recycle’ —exclude=’*.tmp’ zcf /backup/samba/2021-08-29.tar.gz /data/
* в данном примере мы исключим папку recycle и файлы, которые заканчиваются на .tmp
Работа с архивами, разбитыми на части
Разбить архив на части может понадобиться по разным причинам — нехватка места на носителе, необходимость отправки файлов по почте и так далее.
Чтобы создать архив, разбитый на части, вводим команду:
tar -zcvf — /root | split -b 100M — root_home.tar.gz
* данная команда создаст архив каталога /root и разобьет его на части по 100 Мб.
В итоге мы получим, примерно, такую картину:
root_home.tar.gzaa root_home.tar.gzac root_home.tar.gzae
root_home.tar.gzag root_home.tar.gzai root_home.tar.gzab
root_home.tar.gzad root_home.tar.gzaf root_home.tar.gzah
Чтобы собрать архив и восстановить его, вводим команду:
cat root_home.tar.gz* | tar -zxv
Архивация Zip в Linux
Архиватор zip — это звезда в мире ПО (ну не считая rar) этот формат очень популярен для windows систем и он по умолчанию уже встроен в чистую сборку операционной системы, поэтому только установив виндовус вы уже можете разархивировать файлы в формате zip
но давайте перейдем к делу, в Linux и Unix системах дела обстоят по другому, это формат Tar идет по умолчанию, а вот для zip надо поставить пакет unzip
Установка:
- sudo apt-get update && apt-get upgrade
- sudo apt-get install unzip
Создание ZIP архива
Для начала запомним шаблон или синтаксис команды для создания архива zip в linux:
Опции для создания архива tar:
- r (recurse) — рекурсивное создание архива
- s (size) — разбивка архива на определенный размер k (kB), m (MB), g (GB) или t (TB)пример: zip -s 300m <файл 1=”” гб=””>на выходе получим:file.zip (300 mb, master file)file.001.zip (300 mb)file.002.zip (300 mb)file.003.zip (100 mb)
- P (password) — запаролировать архив (можно использовать ключ e тогда пароль будете вводить в отдельной строке со звездочками )пример: zip -P мойпароль -r file.zip ./home/nibbl/fotoпример2: zip -er file.zip ./home/nibbl/foto
- x — исключаем файлы или каталоги из архива
- 1-9 — степень сжатия (где 1 без сжатия, а 9 лучшее сжатие)
— данной командой мы заархивировали с сжатием папку myfile создали архив с именем archive.zip и установили пароль на архив 123
Творение tar-архива без сжатия в Linux
Для создания такого архива используется команда:
tar -cf filename.tar file1 file2 fileN
Метеопараметр —cf отвечает за создание архива filename.tar, в который войдут указанные файлы. Вместо файлов смогут быть указаны и директории.
Создание архива с использованием сжатия в Linux
Поскольку для стягивания доступны как минимум два метода, для использования каждого из них используется отдельный набор параметров.
Образчик сжатия Gzip:
tar -cvzf filename.tar.gz dir_name
В данном случае мы попытались запаковать папку dir_name в картотека filename.tar.gz. Из указанных параметров -z указывает на использование метода Gzip, а -v выводит результаты процесса творения архива с указанием упакованных файлов или папок.
Распаковать zip архив
рассмотрим синтаксис команды что бы распаковать или разархивировать tar архив :
Опции для создания архива tar:
- d (directory) — указать директорию для разархивации
- l — вывести список файлов в архиве
- d — удалить определенный файл или каталог из уже сделанного архива
- v — показывает детальную информацию по файлам в архиве ()
- zip —help или unzip —help — вызов справки по командам и параметрам
- man zip или man unzip — вызов расширенной документации
- официальная документация по команде zip — ссылка
Создание и распаковка архивов .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 интересующий_каталог
Сжатие файлов с gzip
Чтобы сжать один файл, вызовите команду с именем файла:
создаст файл и удалит исходный файл.
По умолчанию в сжатом файле хранятся временная метка, режим, владелец и имя исходного файла.
Сохранить оригинальный файл
Если вы хотите сохранить исходный (исходный) файл, используйте опцию:
Другой вариант сохранить исходный файл — использовать опцию, которая говорит, что нужно писать в стандартный вывод и перенаправлять вывод в файл:
Сжать несколько файлов
Вы также можете передать несколько файлов в качестве аргументов команды. Например, чтобы сжать файлы с именами , , вы бы выполнить следующую команду:
Команда выше создаст три сжатых файлов , , .
Чтобы сжать все файлы в данном каталоге, используйте параметр:
будет рекурсивно проходить через всю структуру каталогов и сжимать все файлы в каталоге и его подкаталогах.
Изменить уровень сжатия
позволяет указать диапазон уровней сжатия от 1 до 9. или означает самую высокую скорость сжатия с минимальной степенью сжатия, или указывает самую низкую скорость сжатия с максимальной степенью сжатия. Уровень сжатия по умолчанию — .
Например, чтобы получить максимальное сжатие, вы должны выполнить:
Сжатие — это интенсивная загрузка процессора, чем выше уровень сжатия, тем дольше длится процесс.
Используя стандартный ввод
Чтобы создать файл из stdin, направьте вывод команды в . Например, чтобы создать резервную копию базы данных Gzipped MySQL, вы должны выполнить:
Вывод команды будет входом для .
Сжатие файлов с помощью gzip
Чтобы сжать отдельный файл, вызовите команду за которой следует имя файла:
создаст файл и удалит исходный файл.
По умолчанию сохраняет в сжатом файле метку времени, режим, владельца и имя исходного файла.
Сохраните исходный файл
Если вы хотите сохранить исходный (исходный) файл, используйте параметр :
Другой вариант сохранить исходный файл — использовать параметр который сообщает о необходимости записи в стандартный вывод и перенаправления вывода в файл:
Сжать несколько файлов
Вы также можете передать несколько файлов в качестве аргументов команде. Например, чтобы сжать файлы с именами , , , вы должны выполнить следующую команду:
Приведенная выше команда создаст три сжатых файла: , , .
Чтобы сжать все файлы в данном каталоге, используйте параметр :
будет рекурсивно проходить по всей структуре каталогов и сжимать все файлы в каталоге и его подкаталогах.
Измените уровень сжатия
позволяет указать диапазон уровней сжатия от 1 до 9. или означает самую высокую скорость сжатия с минимальной степенью сжатия, или указывает на самую скорость сжатия с максимальной степенью сжатия. Уровень сжатия по умолчанию .
Например, чтобы получить максимальное сжатие, вы должны запустить:
Сжатие — это задача, интенсивно использующая процессор, и чем выше уровень сжатия, тем больше времени занимает процесс.
Стандартный ввод
Чтобы создать файл из стандартного , перенаправьте вывод команды в . Например, чтобы создать резервную копию базы данных MySQL в формате Gzip, вы должны выполнить:
Вывод команды будет вводиться для .
Создание и распаковка архивов
Создать
Создание выполняется с ключом c. Синтаксис следующий:
tar -c<опции> <новый архивный файл> <что сжимаем>
Пример создания:
tar -czvf archive.tar.gz /home/dmosk
* в данном примере будет создан архив archive.tar.gz домашней директории пользователя (/home/dmosk)
** где z — сжать архив в gzip (без этого параметра, tar не сжимает, а создает так называемый тарбол); c — ключ на создание архива; v — verbose режим, то есть с выводом на экран процесса (очень удобно для наблюдением за ходом работы, но в скриптах можно упустить); f — использовать файл (обязательно указываем, так как в большей степени работаем именно с файлами).
Распаковать
Распаковка выполняется с ключом x с синтаксисом:
tar -x<опции> <архивный файл>
Пример распаковки:
tar -xvf archive.tar.gz
SHAR
Shar позволяет создавать самораспаковывающиеся архивы. По сути, это скрипт оболочки, и для распаковки ему необходима оболочка Bash или другая совместимая с Bourne Shell. У Shar есть несколько преимуществ, но также он потенциально небезопасный, так как архив представляет собой исполняемый файл.
Опции shar:
- -o — сохранять архив в файл вместо стандартного вывода
- -l — ограничить размер выходного файла
- -L — ограничить размер выходного файла и разбить его на части
- -n — имя архива не будет включено в заголовок
- -a — разрешить автоматическую генерацию заголовков
Примеры использования shar для того чтобы заархивировать папку linux:
Создаем shar архив:
Распаковываем shar архив:
Tar
Tar — это стандартная утилита, с помощью которой выполняется архивирование файлов Linux. Постепенно из небольшой программы архивации она превратилась в мощный инструмент, поддерживающий работу со многими вариантами архивов и алгоритмами сжатия. Программа поддерживает большое количество параметров. Давайте рассмотрим ее синтаксис и основные параметры:
$ tar опцииf файл_для_записи /папка_файлами_для_архива
А теперь разберем основные опции:
- A — добавить файл к архиву
- c — создать архив в linux
- d — сравнить файлы архива и распакованные файлы в файловой системе
- j — сжать архив с помощью Bzip
- z — сжать архив с помощью Gzip
- r — добавить файлы в конец архива
- t — показать содержимое архива
- u — обновить архив относительно файловой системы
- x — извлечь файлы из архива
- v — показать подробную информацию о процессе работы
- f — файл для записи архива
- -C — распаковать в указанную папку
- —strip-components — отбросить n вложенных папок
Теперь давайте рассмотрим архивирование файлов в Linux. Чтобы создать архив используйте такую команду:
А чтобы распаковать архив tar linux:
Очень просто запомнить для упаковки используется опция c — Create, а для распаковки — x — eXtract.
Сжатый архив создается точно так же, только с опцией -z, это в случае, если использовалось шифрование gizp, если нужно bzip то применяется опция -j:
$ tar -zxvf archive.tar.gz
Например, рассмотрим как заархивировать папку в Linux:
Хотя можно поступить по-другому, тот же архив мы получим если сначала создать обычный архив с помощью tar, а потом сжать его утилитой для сжатия, только здесь мы получаем больше контроля над процессом сжатия:
Также можно убрать сжатие:
Утилиты сжатия мы рассмотрим ниже.
Чтобы добавить файл в архив используйте:
Для извлечения одного файла синтаксис тот же:
Можно извлечь несколько файлов по шаблону соответствия с помощью параметра wildcard, например, извлечем все php файлы:
По умолчанию распаковать архив tar linux можно в текущую папку с именем архива, чтобы распаковать в нужную папку используйте ключ -C:
Стандартную утилиту рассмотрели, теперь кратко рассмотрим ее альтернативы. Их не так много, и большинство из них уже устаревшие.