Как создавать и распаковывать архивы zip в консоли Linux
Возможно, вы уже знаете, что Linux и Unix-подобные операционные системы, такие как macOS, имеют инструменты, позволяющие создавать ZIP-файлы и извлекать из них файлы, называемые zip и unzip . Но есть целый ряд связанных утилит, таких как zipcloak , zipdetails, zipsplit и zipinfo.
Мы проверили некоторые дистрибутивы Linux, чтобы увидеть, включают ли они эти утилиты в стандартную установку. Все утилиты присутствовали в Ubuntu 19.04, 18.10 и 18.04. Они также присутствовали в Манджаро 18.04. Fedora 29 включала zip и unzip , но ни одну из других утилит, и это также относится к CentOS.
Чтобы установить недостающие элементы в Fedora 29, используйте следующую команду:
Чтобы установить недостающие элементы в CentOS 7, используйте следующую команду:
Если какая-либо из утилит zip отсутствует в дистрибутиве Linux, который не был упомянут выше, используйте инструмент управления пакетами этого дистрибутива Linux для установки необходимого пакета.
Распаковка ZIP в Linux
Формат ZIP был создан в 1989 году на замену очень медленному формату ARC. Здесь используется сжатие deflate, и на то время оно работало намного быстрее чем ARC.
Исторически сложилось так, что стандартным форматом для Linux стали TAR и GZ – это усовершенствованные алгоритмы сжатия и архивации. Многие графические распаковки воспринимают и ZIP-файлы. Но они обрабатывают архивы не сами, а дают команду предназначенным для этого формата утилитам.
Утилита для распаковки ZIP называется unzip, она не всегда установлена по умолчанию. Но вы можете очень просто добавить её в свою систему из официальных репозиториев. Для этого в Debian и Ubuntu выполните:
А в системах, использующих формат пакетов Red Hat – CentOS и Fedora, команда будет выглядеть немного по-другому:
После установки большинство графических утилит для работы с архивами смогут распаковать архив ZIP Linux. Команда ZIP Linux установлена на случай, если вы захотите создавать ZIP-архивы.
Но этой утилите не нужны дополнительные оболочки для распаковки архива. Вы можете сделать всё прямо из консоли.
Менеджер архивов File Roller
С помощью менеджера архивов FileRoller можно просматривать 7z архивы, для этого достаточно дважды кликнуть на *.7z файле в Nautilus.
Для распаковки необходимо вызвать контекстное меню и выбрать пункт «Распаковать сюда» в Nautilus.
Для создания архивов:
Консольный порт 7-Zip
Пакет p7zip-full содержит утилиту /usr/bin/7z
Её можно использовать для создания 7-Zip архивов.
Создание архива
Для создания архива используется команда-параметр a
Для упаковки в архив arch.7z файлов file01.foo и file02.foo в директории /home/user/TheDir, выполните в терминале
Для упаковки в архив arch.7z всего содержимого директории /home/user/TheDir, выполните в терминале
Файл arch.7z будет создаваться в текущей директории.
Можно использовать абсолютный/относительный путь, например:
В случае архивирования директории не следует писать ./TheDir/*, поскольку файлы/директории вроде ./TheDir/.profile не попадут в архив.
Дополнительные опции архивирования
Опция -t определяет формат архива на выходе.
Например -t7z устанавливает 7z формат (он же используется по умолчанию).
Также можно определить иной формат архива: zip , gzip , bzip2 или tar .
Опция -mx определяет метод компрессии, и может быть например следующих значений:
Также можно разделять архив на тома с помощью опции -v (b — байты, k — килобайты, m — мегобайты, g — гигабайты):
Если вы решили создать несколько томов, не трогайте выходные файлы до тех пор пока вся операция не будет завершена. 7-Zip может изменить любые объемы (в том числе первого тома) в конце архивирования.
Если во время процедуры архивации вы решите, что она занимает слишком много времени, можно остановить выполнение утилиты нажав Сtrl+С в терминале. Однако не забудьте удалить частично сгенерированный выходной файл. Если просто его оставить, а затем попытаться создать архив заново (с другой опцией -m например), утилита 7z отругается на ошибку: «не поддерживается архив». Ошибка возникает, потому что 7z пытается добавить файлы в существующий архив, а последний оказывается «битым».
Для большей настройки процесса архивирования можно использовать опцию -m ( -mfb -md -ms ), например:
Если архив необходимо защитить, тогда наберите в терминале:
Здесь опция опция -pqwerty123 задаёт пароль «qwerty123», а опция -mhe=on разрешает криптование заголовков.
Во всем многообразии опций как всегда поможет разобраться
Распаковка архива
Для распаковки используется команда x
Для извлечения содержимого из архива arch.7z в текущую директорию, выполните в терминале:
Если архив разбит на множество частей, используйте имя с наименьшим номером тома:
Если вы хотите извлечь архив не в текущей диретории, вы можете явно задать целевую директорию с помощью опции -o
Если при создании zip-файла вы добавили папки с этим zip-файлом, тогда стандартная команда unzip воссоздает структуру папок, поскольку она распакована.
Например, если у меня есть zip-файл с именем filename1.zip со следующей структурой и извлеките его, папки будут воссозданы, когда я разархивирую его:
- Папка 1 — filea.txt, fileb.txt, filec.txt
- Папка 2 — filed.txt, filee.txt
- Папка 3 — filef.txt
Если бы я хотел, чтобы все .txt-файлы извлекались в текущую папку без воссозданных папок, я бы использовал ключ -j следующим образом:
Декомпретируйте файл без запроса, когда уже существуют файлы
Представьте, что у вас есть zip-файл, который вы уже расстегнули, и вы начали работать над файлами, которые вы извлекли.
Если у вас есть другой файл, который вы хотите разархивировать, если этот zip-файл содержит файлы, которые уже существуют в том месте, где они должны быть извлечены, перед их перезаписью отображается предупреждение.
Это нормально, но если вы извлекаете файл с 1000 файлами в нем, вы не хотите получать подсказки каждый раз.
Если вы не хотите перезаписывать уже существующие файлы, вы можете поставить ключ -n следующим образом:
Если вам все равно, существует ли файл, и вы всегда хотите перезаписать файлы по мере их извлечения, без запроса использования ключа -o следующим образом:
Команда Unzip в Linux -Распаковка нескольких архивов Zip за один раз
Наряду с распаковкой отдельных файлов, можно распаковать несколько файлов с помощью команды Unzip в Linux. Чтобы распаковать сразу несколько файлов, сделайте следующее.
Во-первых, используйте терминал, чтобы получить доступ к точному расположению файлов, в которых находятся ваши ZIP-архивы, в файловой системе. В этом примере мы будем работать с ZIP-файлами в каталоге «Загрузки».
Оказавшись внутри каталога «Загрузки», можно начинать извлечение. Используя команду ниже, извлеките каждый ZIP-архив сразу с помощью Unzip.
Когда процесс распаковки будет завершен, все содержимое Zip-архивов в каталоге «Загрузки» будет извлечено.
- Гость
- 25.11.2020 08:16
не работает от слова совсем.
- Ответить
- AJIekceu4
- 26.11.2020 19:53
Очень подробно. Если в статье есть неточности, то было бы куда правильней на них указать (конкретику), а не писать расплывчатые фразы.
- Ответить
- Аноним
- 06.05.2020 09:38
Спасибо. Но это слишком тривиально и есть везде. Как распаковать из полного архива 1 папку с файлами в каждом случае н.п. /lib/modules/* ? Заранее признателен
- Ответить
- AJIekceu4
- 06.05.2020 10:06
Тип архива то какой? zip,rar,tar.
- Ответить
- Recluse
- 06.05.2020 10:25
Для unzip это будет так:
Для tar архивов (очень важно не написать «/» в начале пути к директории в архиве):
Распаковываем архивы формата ZIP в Linux
Далее мы затронем две свободных популярных утилиты, управление которыми осуществляется через консоль, то есть пользователю придется вводить встроенные и дополнительные команды для управления всеми файлами и инструментами. Примером сегодня выступит дистрибутив Ubuntu, а для обладателей других сборок мы сделаем акценты на каких-либо несовпадениях.
Отдельно хочется отметить, если вы заинтересованы в дальнейшей установке программы из архива, сначала проверьте, нет ли ее в официальных хранилищах или отдельных пакетах под ваш дистрибутив, ведь осуществить такую инсталляцию гораздо проще.
Читайте также: Установка RPM-пакетов / DEB-пакетов в Ubuntu
Способ 1: Unzip
Хоть в Ubuntu Unzip и является встроенной утилитой, позволяющей управлять архивами необходимого нам типа, однако в других сборках Линукс этот полезный инструмент может отсутствовать, поэтому давайте начнем с его установки, а потом уже разберемся с взаимодействием.
- Для начала запустите «Терминал» любым удобным методом, например, через меню.
Что касается дополнительных аргументов, применяемых в утилите Unzip, то здесь следует отметить несколько самых важных:
- -u — обновление существующих файлов в директории;
- -v — отображение всей доступной информации об объекте;
- -P — установка пароля для получения разрешения на распаковку архива (в случае наличия шифрования);
- -n — не перезаписывать уже существующие файлы в месте распаковки;
- -j — игнорирование структуры архива.
Как видите, ничего сложного в управлении утилитой под названием Unzip нет, но подходит она не всем пользователям, поэтому советуем ознакомиться со вторым методом, где будет применяться более распространенное решение.
Способ 2: 7z
Многофункциональная утилита 7z по работе с архивами предназначена не только для взаимодействия с одноименным типом файлов, но и поддерживает другие популярные форматы, в том числе и ZIP. Для операционных систем на Linux тоже есть версия этого инструмента, поэтому предлагаем с ней ознакомиться.
- Откройте консоль и загрузите последнюю версию 7z с официального репозитория, введя команду sudo apt install p7zip-full , а обладателям Red Hat и CentOS потребуется указать sudo yum install p7zip .
Как и в случае с Unzip, в 7z есть ряд своих дополнительных аргументов, советуем тоже ознакомиться с основными из них:
- e — извлечение файлов с указанием пути (при использовании x путь сохраняется прежний);
- t — проверка архива на целостность;
- -p — указание пароля от архива;
- -x + перечень файлов — не распаковывать заданные объекты;
- -y — положительные ответы на все поставленные вопросы во время распаковки.
Вы получили инструкции по использованию двух популярных утилит для распаковки ZIP в Linux. Особое внимание обратите на дополнительные аргументы и не забывайте применять их в случае надобности.
Мы рады, что смогли помочь Вам в решении проблемы.
Помимо этой статьи, на сайте еще 12369 инструкций.
Добавьте сайт Lumpics.ru в закладки (CTRL+D) и мы точно еще пригодимся вам.Отблагодарите автора, поделитесь статьей в социальных сетях.
Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.