- Использование tar в Linux и FreeBSD для работы с архивами
- Создание и распаковка архивов
- Создать
- Распаковать
- Примеры
- Распаковать в определенную папку
- Распаковка без вложенной папки
- Исключение файлов по маске
- Работа с архивами, разбитыми на части
- Описание ключей tar
- Команды для действия
- Дополнительные опции
- Windows
- Создание и распаковка архивов в Linux
- Содержание
- Создание tar-архива без сжатия
- Создание архива с использованием сжатия
- Распаковка архива
- Просмотр содержимого архива без распаковки
- Создание и распаковка ZIP-архивов
- Распаковка RAR-архивов
- Пример создания резервной копии данных на VPS
- Работа с архиваторами linux
- UNRAR
- UNZIP
- Основные расширения при использование сжатия.
- Как распаковать ZIP в Linux
- Распаковка ZIP Linux
- Как распаковать ZIP Linux с помощью 7z
- Выводы
Использование tar в Linux и FreeBSD для работы с архивами
Утилита командной строки tar используется для работы с архивами в операционных системах на базе UNIX. С ее помощью можно архивировать данные и оптимизировать использование дискового пространства.
Создание и распаковка архивов
Создать
Создание выполняется с ключом c. Синтаксис следующий:
tar -czvf archive.tar.gz /home/dmosk
* в данном примере будет создан архив archive.tar.gz домашней директории пользователя (/home/dmosk)
** где z — сжать архив в gzip (без этого параметра, tar не сжимает, а создает так называемый тарбол); c — ключ на создание архива; v — verbose режим, то есть с выводом на экран процесса (очень удобно для наблюдением за ходом работы, но в скриптах можно упустить); f — использовать файл (обязательно указываем, так как в большей степени работаем именно с файлами).
Распаковать
Распаковка выполняется с ключом x с синтаксисом:
tar -xvf archive.tar.gz
Примеры
Распаковка .gz файла:
tar -xvf archive.tar.gz
* при возникновении ошибки This does not look like a tar archive, можно воспользоваться командой gzip -d archive.tar.gz.
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
Описание ключей 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 не работает с zip-архивами. В системах UNIX для этого используем утилиты zip и unzip. Для начала, ставим нужные пакеты:
yum install zip unzip
apt-get install zip unzip
pkg install zip unzip
* соответственно, для RPM based, deb based, BSD based.
zip -r archive.zip /home/dmosk
* создает архив каталога /home/dmosk в файл archive.zip.
Windows
В системе на базе Windows встроенными средствами можно распаковать только ZIP-архивы. Для работы с разными архивами рекомендуется поставить архиватор, например 7-Zip.
Источник
Создание и распаковка архивов в Linux
В случае с Linux VPS на базе OpenVZ и KVM для работы с архивами достаточно базовых компонентов системы, а именно Tar, Gzip и Bzip2, которые при создании сжатого архива работают как единое целое, т.к. сам по себе архиватор Tar не предусматривает возможность сжатия данных. Для этой цели как раз и используется Gzip или Bzip2. Архивы, созданные с применением Gzip, обычно имеют расширение .tar.gz, а при использовании Bzip2 — .tar.bz2.
Содержание
Создание tar-архива без сжатия
Для создания такого архива используется команда:
Параметр —cf отвечает за создание архива filename.tar, в который войдут указанные файлы. Вместо файлов могут быть указаны и директории.
Создание архива с использованием сжатия
Поскольку для сжатия доступны как минимум два метода, для использования каждого из них используется отдельный набор параметров.
Пример сжатия Gzip:
В данном случае мы попытались запаковать папку dir_name в архив filename.tar.gz. Из указанных параметров -z указывает на использование метода Gzip, а -v выводит результаты процесса создания архива с указанием упакованных файлов или папок.
Пример сжатия Bzip2:
Данная команда аналогична предыдущей и имеет отличие в параметре –j, т.к. именно он отвечает за использование метода сжатия Bzip2.
Распаковка архива
Для того, чтобы распаковать архив, используется команда:
В данном случае архив filename.tar.bz2 будет распакован в ту папку, в которой вы находились в момент запуска команды. Для того, чтобы распаковать архив в какую-либо другую директорию, можно использовать команду:
В этом случае архив распакуется в указанной директории.
Просмотр содержимого архива без распаковки
Для этих целей используется следующая команда:
В результате выполнения команды выведется список файлов и папок, хранящихся в архиве. Если в перечень параметров добавить -v, то получится расширенный вывод информации о содержимом с указанием размера файлов, прав доступа, именами владельцев и их групп, и т.п.
Просмотреть полный список возможностей архиватора tar можно при помощи команд:
Создание и распаковка ZIP-архивов
Создание zip-архива выполняется командой:
Вместо archive.zip указываем имя создаваемого архива. Вместо filename указываем имя файла, который нужно архивировать. Для архивации целой папки необходимо использовать параметр –r, который инициирует рекурсивное архивирование. Без этого параметра будет заархивирована только папка без вложенных в неё файлов. Пример команды:
Распаковка архива производится командой unzip:
Если необходимо распаковать в конкретную папку, то для этого используется параметр –d. Например:
Вместо dirname указывается папка, в которую нужно извлечь данные из архива.
Просмотреть полный список возможностей архиватора zip и unzip можно при помощи команд:
Распаковка RAR-архивов
Для извлечения содержимого архива используется команда unrar:
Посмотреть список файлов в архиве без его распаковки можно командой:
Примечание: Стоит отметить, что Unrar может отсутствовать по умолчанию в некоторых Linux-дистрибутивах. Установить данное ПО можно следующими командами:
CentOS/Fedora:
Debian/Ubuntu:
Просмотреть полный список возможностей архиватора unrar можно при помощи команд:
Пример создания резервной копии данных на VPS
Допустим, на VPS необходимо сделать резервную копию файлов сайта, которые располагаются в директории /var/www/html/mysite. Чтобы создать сжатый архив данных, расположенных в указанной директории, необходимо выполнить следующую команду:
В результате содержимое директории /var/www/html/mysite будет запаковано в архив mysite.tar.gz.
Если вы хотите перенести подобный архив с одного VPS на другой, но не знаете, как это сделать, то об этом вы можете узнать в статье Способы переноса файлов между серверами.
Источник
Работа с архиваторами linux
В данной статье приведен обзор основных архиваторов используемых Linux такие как rar, unrar, zip, unzip ,gzip, bzip2, tar. Рассмотрены команды для создания, просмотра и распаковки архивов.
Основные утилиты для работы с архивами в linux:
Проприетарный формат сжатия данных и программа-архиватор (программа распространяется как условно-бесплатная Shareware).
1. Добавляет все файлы текущей директории в архив file.rar
2. Распаковка содержимое архива в текущею директорию
UNRAR
Бесплатная утилита для просмотра и распоковки архивов созданных архиватором rar.
1. Распаковка архива в текущую директорию.
2. Просмотр содержимого архива rar.
Формат сжатия данных и архивации файлов и программа-архиватор.
1. Добавляет все файлы текущей директории в архив file.zip.
2. Добавляет все файлы и папки текущей директории в архив file.zip.
UNZIP
Бесплатная утилита для просмотра и распоковки архивов созданных архиватором zip.
1. Просмотр содержимого архива zip.
2. Распаковка содержимое архива в текущею директорию.
3. Распаковка содержимое архива в директорию /home/user.
4. Распаковка file.txt из архива в текущею директорию.
Бесплатная утилита для сжатия данных, выполняет только сжатие или распаковку одного файла.
Бесплатная утилита для сжатия данных, выполняет только сжатие или распаковку одного файла.
Утилита для работы с архивами формата tar, умеет создавать и распаковывать архивы, но не умеет сжимать архивы, для сжатия испльзует внешние утилиты gzip и bzip2.
1. Создать не сжатый архив .tar.
2. Распаковать архив.
3. Cоздать сжатый архив .tar.gz.
4. Cоздать сжатый архив .tar.bz2.
Основные расширения при использование сжатия.
Также по каждой утилите можно получить расшириную справку используя ключ —help, в случае если вывод справки занимает больше одной страницы, например для утилиты tar, используйте для чтения утилиту less.
Вот и все. Рассмотрение linux утилит для работы с архивами из терминала завершено.
1″ :pagination=»pagination» :callback=»loadData» :options=»paginationOptions»>
Источник
Как распаковать ZIP в Linux
В операционной системе Windows формат архивов ZIP считается чуть ли не стандартным, он даже поддерживается в этой операционной системе, что называется «из коробки». Если вы только перешли с Windows, то у вас, наверное, есть много таких архивов с различными файлами, также ZIP-архивы могут часто попадаться на просторах интернета. Поэтому работать с такими файлами в Linux вам однозначно придётся.
В этой небольшой статье мы рассмотрим, как распаковать ZIP Linux. Разберём несколько способов и воспользуемся несколькими утилитами, которые справятся с этой задачей.
Распаковка ZIP Linux
Формат ZIP был создан в 1989 году на замену очень медленному формату ARC. Здесь используется сжатие deflate, и на то время оно работало намного быстрее чем ARC. Исторически сложилось так, что стандартным форматом для Linux стали TAR и GZ — это усовершенствованные алгоритмы сжатия и архивации. Многие графические распаковки воспринимают и ZIP-файлы. Но они обрабатывают архивы не сами, а дают команду предназначенным для этого формата утилитам.
Утилита для распаковки ZIP называется unzip, она не всегда установлена по умолчанию. Но вы можете очень просто добавить её в свою систему из официальных репозиториев. Для этого в Ubuntu выполните:
sudo apt install unzip
А в системах, использующих формат пакетов Red Hat, команда будет выглядеть немного по-другому:
sudo yum install unzip zip
После установки большинство графических утилит для работы с архивами смогут распаковать архив ZIP Linux. Команда ZIP Linux установлена на случай, если вы захотите создавать ZIP-архивы.
Но этой утилите не нужны дополнительные оболочки для распаковки архива. Вы можете сделать всё прямо из консоли. Давайте рассмотрим синтаксис утилиты:
$ unzip опции файл_архива.zip файлы -x исключить -d папка
- файл архива — это тот файл, с которым нам предстоит работать;
- файлы — здесь вы можете указать файлы, которые нужно извлечь, разделять имена файлов пробелом;
- исключить — файлы, которые извлекать не нужно;
- папка — папка, в которую будет распакован архив.
Теперь рассмотрим опции утилиты, поскольку она позволяет не только распаковывать архивы, но и выполнять с ними определённые действия:
- -l — вывести список файлов в архиве;
- -t — протестировать файл архива на ошибки;
- -u — обновить существующие файлы на диске;
- -z — вывести комментарий к архиву;
- -c — извлекать файлы на стандартный вывод, перед каждым файлом будет выводиться его имя;
- -p — то же самое, только имя выводится не будет;
- -f — извлечь только те файлы, которые уже существуют на диске, и файлы в архиве более новые;
- -v — вывести всю доступную информацию;
- -P — указать пароль для расшифровки архива;
- -n — не перезаписывать существующие файлы;
- -j — игнорировать структуру архива и распаковать всё в текущую папку;
- -q — выводить минимум информации.
Все самые основные опции рассмотрели, теперь давайте рассмотрим несколько примеров работы с программой в терминале. Чтобы распаковать ZIP Linux в текущую папку, достаточно набрать:
Причём расширение указывать не обязательно. Протестировать архив можно с помощью опции -t:
unzip -tq имя_файла.zip
Вы можете протестировать все архивы в текущей папке, выполнив:
Если нужно распаковывать архив не в текущую папку, можно очень просто указать нужную:
unzip имя_файла.zip -d /tmp
Также можно распаковывать не весь архив, а только нужные файлы или файлы нужного формата:
unzip имя_файла.zip \*.txt -d /tmp
С помощью опции -l вы можете посмотреть список файлов в архиве:
unzip -l file.zip
Утилиту unzip разобрали и теперь вы с ней точно справитесь. Но я говорил, что мы рассмотрим несколько способов, как выполняется распаковка ZIP Linux. Поэтому дальше мы поговорим об утилите 7z.
Демонстрация работы утилит zip и unzip в терминале:
Как распаковать ZIP Linux с помощью 7z
7z — это кроссплатформенный набор утилит для работы с архивами. Кроме собственного формата, здесь поддерживается большое количество других, в том числе tar и zip. Плюс этой утилиты — в контекстное меню файлового менеджера будет добавлен пункт, с помощью которого вы сможете распаковывать или создавать архивы.
Для установки утилиты в Ubuntu или Debian выполните:
sudo apt install p7zip-full
А в Red Hat и CentOS:
sudo yum install p7zip
Теперь вы можете использовать контекстное меню вашего файлового менеджера, чтобы распаковать архив ZIP Linux. Также можно использовать программу в консоли. Синтаксис очень похож на unzip:
$ 7z команда опции имя_архива
Команда задаёт нужное действие. Нас будут интересовать только четыре команды:
- e (Extract) — извлечь файлы из архива;
- x eXtract — извлечь файлы из архива, сохраняя полный путь;
- l (List) — список файлов архива;
- t (Test) — проверить архив.
Теперь рассмотрим самые полезные опции:
- -o — указать папку для распаковки;
- -p — указать пароль;
- -x — не извлекать эти файлы;
- -w — указать рабочую директорию;
- -y — отвечать положительно на все вопросы;
Ну и рассмотрим примеры работы с утилитой. Сначала проверим содержимое архива:
Распаковываем архив, сохраняя структуру подкаталогов:
Или распаковываем все файлы в одну папку, игнорируя подкаталоги:
Или вы можете указать папку, в которую нужно распаковать файлы с помощью опции -o:
7z x файл.zip -o /tmp/
Выводы
В этой статье была рассмотрена распаковка ZIP Linux, как видите, это ненамного сложнее, чем распаковка стандартных архивов TAR. Мы рассмотрели два способа ,и теперь вы точно будете знать, что делать, когда столкнетесь с такой ситуацией. Если у вас остались вопросы, спрашивайте в комментариях!
Источник