Работа с ZIP архивом в Linux
В данной небольшой статье мы рассмотрим, как распаковать архив ZIP в Linux. Разберём несколько способов и воспользуемся многыми утилитами, которые справятся с этой задачей. Unzip не всегда установлена по умолчанию в Linux, потому есть вероятность того, что вам придётся доустанавливать её самостоятельно из официальных репозиториев, это не трудно.
Программа zip — это звезда в мире ПО (ну не считая rar) этот формат очень популярен для windows систем и он по умолчанию уже встроен в незапятнанную сборку операционной системы, поэтому только установив виндовус вы уже можете разархивировать файлы в формате zip. Когда вы установите unzip, все утилиты для работы с архивами смогут без проблем распаковать архив zip.
Установка программы Zip в Linux
Рассмотрим на примере Debian или Ubuntu
Чтобы создать ваш первоначальный архив в формате zip используйте команду zip — первый аргумент это название архива, второй это файл или компданные через пробел, которые будут добавлены в архив:
zip archive.zip file1.txt file2.log
Как добавить в картотека zip папку с файлами:
Установить пароль на архив можно с помощью ключа -P, а ключ -e утаит пароль при вводе :
Для распаковки архивов Zip используйте команду unzip, можно использовать её без каких-нибудь опций, распаковка в таком случае будет произведена в текущую директорию:
Применяйте ключ -d для указания директории, куда нужно распаковать архив:
Посмотреть компданные в архиве без распаковки можно с ключом -l :
Как распаковать определённые файлы из архива? Зачислите их через пробел:
unzip archive.zip 1.txt 2.txt
Пример создания архива. Заархивируем все файлы и папки в папки /var/log/ и директорию /var/spool/:
zip -r -9 test-archive.zip /var/log/* /var/spool/* -x «/var/log/apt/*»
-r — архивировать рекурсивно
-9 — степень сжатия от 1 до 9. 0 — без стягивания.
test-archive.zip — имя архива
/var/log/* /var/spool/* — архивируемые директории через пробел
-x «/var/log/apt/*» — опция, дозволяющая исключить указанную папку или файл из архива
-e — опция, позволяющая задать пароль на архив
Творение ZIP архива в Linux
Для начала запомним шаблон или синтаксис команды для создания архива zip в linux:
zip [функции] [файлы или папки которые будем упаковывать]
Опции для создания архива tar:
r (recurse) — общерекурсивное создание архива
s (size) — разбивка архива на определенный размер k (kB), m (MB), g (GB) или t (TB)
пример: zip -s 300m
на выводе получим:
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 лучшее сжатие)
zip –r -9 -P 123 — archive.zip /home/nibbl/desktop/myfile
— этой командой мы заархивировали с сжатием папку myfile создали архив с именем archive.zip и установили пароль на картотека 123
Распаковать zip архив в Linux
Далее мы затронем две свободных популярных утилиты, управление которыми исполняется через консоль, то есть пользователю придется вводить встроенные и дополнительные команды для управления абсолютно всеми файлами и инструментами. Примером сегодня выступит дистрибутив Ubuntu, а для обладателей других сборок мы делаем акценты на каких-либо несовпадениях. Рассмотрим синтаксис команды что бы распаковать или разархивировать tar архив:
Функции для создания архива tar:
d (directory) — указать директорию для разархивации
l — вывести список файлов в картотеке
d — удалить определенный файл или каталог из уже сделанного архива
v — показывает детальную информацию по файлам в картотеке ()
unzip — распаковываем архив в категорию в которой находимся
unzip -d /home/nibbl/desktop — распаковываем картотека на рабочий стол
Общая информация по работе с Zip в Linux
zip —help или unzip —help — вызов ссылки по командам и параметрам
man zip или man unzip — вызов расширенной документации официальная документация по команде zip — ссылка
Просмотр охватываемого zip архива в Linux
Вы можете проверить содержимое zip-файла даже не извлекая его с помощью опции -l.
Вот, что выведет терминал после ввода:
unzip -l metallic-container.zip
Archive: metallic-container.zip
Length Date Time Name
——— ———- —— —-
6576010 2019-03-07 10:30 625993-PNZP34-678.jpg
1462 2019-03-07 13:39 License free.txt
1116 2019-03-07 13:39 License премиум.txt
——— ——-
6578588 3 files
Существует множество других способов использования команды распаковки в Linux, но, думаю, теперь у вас достаточно знаний для распаковки архивов в Linux. Теперь вы знаете, как распаковать файл в Linux.
📑 Шпаргалка по архиватору zip
В Ubuntu изначально архиватор zip не установлен. Устанавливается из репозитория:
Основные, наиболее часто используемые команды:
Создание архива. Необходимо сделать архив всех папок и файлов из директорий /var/www/ и /etc/nginx/ кроме директории /var/www/old_site/:
$ zip -r -9 www-archive.zip /var/www/* /etc/nginx/* -x "/var/www/old_site/*"
- -r — архивировать рекурсивно
- -9 — степень сжатия от 1 до 9. 0 — «архивирование» совсем без сжатия.
- www-archive.zip — имя архива
- /var/www/* /etc/nginx/* — архивируемые директории через пробел. * — все файлы
- -x «/var/log/apt/*» — опция, позволяющая исключить указанную папку или файл из архива
Для того, чтобы запаролить архив необходимо указать опцию -e:
$ zip -e mypass -r -9 www-archive.zip /var/www/* /etc/nginx/* -x "/var/www/old_site/*"
Распаковка архива. unzip обычно уже установлен в Ubuntu. Если нет — установить из репозитория.
— распаковать архив в текущую директорию
$ unzip www-archive.zip -d /temp/
— распаковать содержимого архива в директорию /temp/
Распаковка отдельного файла из архива.
$ unzip www.archive.zip my-file.php
— распаковка файла my-file.php из архива в текущую директорию
Для того, чтобы просмотреть содержание архива zip без распаковки:
– просмотр содержимого архива zip
Для получения более детальной информации во время разархивирования, можно использовать опцию -v:
Проверка целостности архива без распаковки:
- Альтернативы SSH, которые в некоторых случаях лучше оригинала
- Полный набор лучших и современных консольных программ для Linux
- Хитрости командной строки Bash, которые помогут вам работать быстрее
- Команда ls в Linux — подробно и с примерами
- Команда mkdir в Linux — подробно и с примерами
- Команда chmod в Linux — подробно и с примерами
- Команда cat и примеры её использования в Linux
- Файловый менеджер nnn
- Версия системы и версия ядра Ubuntu/Mint
- Ошибка NO_PUBKEY. Как найти GPG-ключ и добавить его в базу apt системы Ubuntu
- nmon — удобный инструмент для мониторинга Linux систем
- Команда history или работа с историей введенных команд
- Шпаргалка по архиватору 7z (7-Zip) в Linux Ubuntu/Mint
- Как посмотреть все доступные шрифты в терминале (CLI)?
- Команда id — найти UID пользователя или GID
- nmblookup — аналог команды Windows nbtstat для Linux.
- Inxi — программа вывода информации о системе и железе в Linux
- dnstop — мониторинг и анализатор DNS-трафика
- ss — программа для исследования сокетов
- Команда netstat в Ubuntu — показ статуса сети
- Команда ifconfig — настройка параметров сетевого интерфейса
- Почему в меню загрузки ubuntu нет memtest86
- Ethtool — программа изменения параметров сетевой платы в Ubuntu/Mint
- Установка сервера точного времени NTP в Ubuntu 16.04
- Удаление файлов старше N дней
- Блокирование атак при помощи null route или blackhole
- Расширенный менеджер пакетов APT
- Архиватор tar
- Шпаргалка по архиватору zip
- Блокирование ip адреса при помощи iptables
- Программа iftop
- Top – сведения об активности процессов в Ubuntu
- i-Nex — аналог CPU-Z в Windows
- Защита сервера — Fail2Ban
Просмотр содержимого zip-архива
Как под консолью просмотреть что находится внутри zip-архива?
Но не весь список файлов, а только верхний уровень, без списка файлов из вложенных директорий.
man unzip уже 2 дня читаю, но такого ключа там не нашел. А вот sed еще не доводилось в руках держать.
Могли бы вы для новичка привести конкретный пример команды с использованием sed?
выдает сообщение: awk: line 2: function gensub never defined
Но не весь список файлов, а только верхний уровень, без списка файлов из вложенных директорий.
Посмотреть в mc, толсто но работает
В подробности не вникал, но может этого будет достаточно?
Правило N+1. Как бы кратко ни был написан awk/sed/чтолибоещё-однострочник, его можно написать ещё короче.
Не подскажете, где описана такая конструкция? А то меня не покидает ощущение, что я пишу на awk perl-скрипты.
AITap> Не подскажете, где описана такая конструкция?
Это регексп по полю $4 — < print >отсутствует, т.к. это действие по-умолчанию.
Не подскажете, где описана такая конструкция? А то меня не покидает ощущение, что я пишу на awk perl-скрипты.
vim без ключей тоже показывает файлы из подпапок
Теперь понял. Жаль, что пробелы в именах директорий в этом случае приводят к неправильной работе однострочника.
авк здесь оверхед:
unzip -l .zip |cut -b31- |cut -sd/ -f1 |uniq
Впрочем, это легко исправить:
unzip -l file.zip | awk '$0 ~ /^[ 0-9\-:]+[^/]*\/?$/'