Разархивировать файлы в Linux — вроде бы тривиальная задача, но с ней всё равно много нюансов, особенно если ты не хочешь остаться с поломанными файлами, потерять время на лишние вопросы терминала или, хуже того, сломать что-то из-за нехватки прав. ZIP — самый популярный формат архивов, но в Linux его «родной» поддержки, в отличие от Windows, нет. Поэтому приходится ставить утилиту unzip и разбираться с кучей параметров. В этом руководстве я расскажу, как делать это быстро, безопасно и без боли — от установки до вариантов распаковки с паролем и без.
Установка unzip
Большинство дистрибутивов не ставят unzip по умолчанию, так что сначала поставь его:
Ubuntu/Debian:
sudo apt install unzip
CentOS/Fedora:
sudo yum install unzip
Как разархивировать ZIP-файл
Чтобы распаковать всё в текущую папку, просто:
unzip latest.zip
Прав на запись в папку у тебя должно быть.
Подавить вывод
Не хочешь читать список файлов? Добавь -q:
unzip -q filename.zip
Разархивировать в другой каталог
Нужно в другую папку? Добавь -d:
unzip filename.zip -d /path/to/directory
Если там нужны права суперпользователя, запускай через sudo:
sudo unzip latest.zip -d /var/www
ZIP с паролем
Пароль лучше не писать в командной строке, но если уж очень надо:
unzip -P PasswOrd filename.zip
Без пароля unzip спросит его при необходимости.
Исключить файлы из распаковки
Чтобы не выдёргивать лишнее:
unzip filename.zip -x file1-to-exclude file2-to-exclude
Например, исключить .git каталог:
unzip filename.zip -x "*.git/*" Перезапись существующих файлов
При повторной распаковке unzip спросит, что делать с файлами:
replace file? [y]es, [n]o, [A]ll, [N]one, [r]ename:
Чтобы не спрашивал и просто перезаписывал:
unzip -o filename.zip
Будь осторожен, свои изменения потеряешь.
Не перезаписывать существующие файлы
Если хочешь восстановить удалённые файлы, но не потерять изменения:
unzip -n filename.zip
Несколько ZIP-архивов
Чтобы распаковать все ZIP-файлы в папке одной командой:
unzip '*.zip' Обязательно в одинарных кавычках, иначе shell спутается.
Посмотреть содержимое архива
Перед распаковкой глянь, что внутри:
unzip -l filename.zip
0 комментариев