Только для посетителей нашего блога: получите дополнительные 3 месяца бесплатно + скидку 10% на трехгодичный план YSBLOG10
Захватить сделку

Как использовать команду Unzip в Linux 2026 — пошаговое руководство

Команда unzip в Linux Эта программа извлекает файлы из .zip архивов через терминал. Используйте её для просмотра, проверки или извлечения файлов из архивов, включая ZIP-архивы, защищённые паролем. Типичное использование: «unzip file.zip» или «unzip file.zip -d /path». Она легковесна, удобна для скриптов и доступна в большинстве дистрибутивов через пакет «unzip».

Если вы работаете со сжатыми файлами на сервере или локальном компьютере, команда unzip в Linux — это быстрый и надежный способ распаковки .zip архивов. В этом руководстве рассматриваются установка, синтаксис, распространенные параметры, примеры из реальной жизни, вопросы безопасности и устранение неполадок — все, что вам нужно, чтобы уверенно использовать unzip в производственной или тестовой среде.


Что такое команда unzip в Linux?

unzip — это утилита командной строки, которая извлекает и проверяет содержимое .zip-архивов. Она поддерживает вывод списка содержимого, проверку целостности, выборочное извлечение, архивы, защищенные паролем, и надежное сопоставление с использованием подстановочных знаков. Она идеально подходит для автоматизации (скрипты оболочки, CI/CD), удаленного доступа. серверы через SSHа также быстрые рабочие процессы в терминале, где инструменты графического интерфейса недоступны.

На большинстве серверов unzip по умолчанию не включен. Установите его вместе с вашим пакетом. manager:

Debian / Ubuntu:

sudo apt update && sudo apt install -y unzip zip

RHEL/CentOS/AlmaLinux/Rocky:

sudo dnf install -y unzip zip
# older releases: sudo yum install -y unzip zip

Fedora:

sudo dnf install -y unzip zip

Арх/Манджаро:

sudo pacman -S unzip zip

Альпийский:

sudo apk add unzip zip

Основной синтаксис и общие параметры

Базовый синтаксис прост:

unzip [options] archive.zip [file_pattern ...] -d target_directory

Быстрый старт: Распаковка ZIP-архива

# Extract to current directory
unzip site_backup.zip

# Extract to a specific directory
unzip site_backup.zip -d /var/www/html

Список файлов без распаковки (-l)

# Short listing
unzip -l site_backup.zip

# Verbose listing with attributes (-v shows more details)
unzip -v site_backup.zip

Проверка целостности архива (-t)

unzip -t site_backup.zip

Это подтверждает, что архив не поврежден, что полезно для резервного копирования и конвейеров CI/CD.

Перезапись параметров управления (-n и -o)

По умолчанию при распаковке архива появляется запрос перед перезаписью существующих файлов. Используйте:

# Never overwrite existing files
unzip -n site_backup.zip

# Overwrite existing files without prompting
unzip -o site_backup.zip

Селективное извлечение с использованием шаблонов и исключений

# Extract only PHP files from public/ directory
unzip site_backup.zip "public/*.php" -d /var/www/html

# Exclude specific paths or file types (-x)
unzip site_backup.zip -x "*/node_modules/*" "*.log" -d /var/www/html

Использование кавычек предотвращает интерпретацию символов подстановки вашей оболочкой, позволяя unzip обрабатывать шаблоны внутри себя.

Архивы, защищенные паролем (-P)

Для зашифрованных ZIP-архивов можно указать пароль. В общих средах предпочтительнее использовать интерактивные запросы.

# Inline password (avoid in shared shells or history-enabled sessions)
unzip -P "StrongPassword" secrets.zip -d ~/secure

# Safer: omit -P and let unzip prompt for the password
unzip secrets.zip -d ~/secure

Сохранить или игнорировать структуру папок (-j)

Используйте «лишние пути» для преобразования каталогов в плоские структуры во время распаковки:

# Extract everything into one folder without subdirectories
unzip -j images.zip -d ./images_flat

Update vs Freshen (-u и -f)

Полезно для поэтапного развертывания или синхронизации.

# Update: extract only files that are newer than existing ones or missing
unzip -u build.zip -d /var/www/app

# Freshen: update only files that already exist (don’t create new files)
unzip -f build.zip -d /var/www/app

Тихий и неинтерактивный режимы (-q, -o, -n)

Для скриптов и cron jobsУменьшите уровень шума и избегайте подсказок:

# Quiet + overwrite
unzip -q -o release.zip -d /opt/app

# Quiet + never overwrite
unzip -q -n assets.zip -d /opt/app/assets

Практические примеры и реальные сценарии использования

Пакетная распаковка нескольких архивов

Если в папке содержится много .zip-файлов, автоматизируйте их распаковку:

mkdir -p ~/archives/extracted
for z in ~/archives/*.zip; do
  [ -e "$z" ] || continue
  unzip -n "$z" -d ~/archives/extracted
done

Извлекать только журналы или файлы определенных типов.

# Only .log files
unzip logs_backup.zip "*.log" -d ./logs

# Only images from nested folders
unzip media.zip "*.png" "*.jpg" "*.webp" -d ./public/images

Рекурсивная распаковка в подкаталогах

Распакуйте все найденные рекурсивно архивы по указанному пути:

find /data/backups -type f -name "*.zip" -print0 | while IFS= read -r -d '' z; do
  unzip -n "$z" -d "${z%.zip}"
done

Обработка имен файлов, содержащих пробелы или специальные символы.

# Quote file specs; use -O to set character encoding if needed
unzip -O UTF-8 "backup with spaces.zip" -d ./restore

Используйте опцию -O, если архивы были созданы в системах с определенными кодировками.

Перед извлечением выполните поиск, поиск и фильтрацию содержимого.

# Find a file in the archive without extracting
unzip -l app.zip | grep -i "config.php"

Вопросы разрешений, прав собственности и безопасности.

При распаковке файлов на серверах следует учитывать права доступа и безопасность.

  • Собственность: Распаковка архива выполняется от имени текущего пользователя. При развертывании в корневые каталоги веб-сайта (например, /var/www) используйте привилегированную учетную запись с осторожностью или распакуйте архив во временную папку и переместите его с указанием прав владельца (chown -R www-data:www-data /var/www/html).
  • Права доступа: Программа unzip пытается восстановить сохраненные режимы. После распаковки может потребоваться команда chmod для приведения настроек в соответствие с вашей политикой безопасности (например, для файлов 0644, для каталогов 0755).
  • Символические ссылки: Архивы могут содержать символические ссылки. Извлекайте файлы только из надежных источников, чтобы избежать обхода путей или доступа к небезопасным целевым ссылкам.
  • Окружающая среда: Избегайте встраивания паролей (-P) в многопользовательские системы; отдавайте предпочтение интерактивным подсказкам или внедрению среды в CI с осторожностью.
  • Encoding: Используйте параметр -O для указания кодировки имени файла; несоответствие кодировок может привести к искажению имен файлов.

Устранение распространенных ошибок при распаковке архивов

  • Подпись конца центрального каталога не найдена: Файл не является допустимым ZIP-архивом или усечен. Перезагрузите файл, проверьте контрольную сумму или убедитесь, что вы не переходите на страницу ошибки HTML, сохраненную как ZIP-архив.
  • Не удаётся найти или открыть файл .zip: Убедитесь, что путь указан правильно и учитывается регистр символов. Используйте абсолютные пути или команду `cd` для перехода в нужную директорию.
  • Пропуская: Файл уже существует; используйте -o для перезаписи: добавьте -o или -n в зависимости от желаемого поведения или сначала удалите целевой файл.
  • Зашифрованный файл: Используйте параметр -P для указания пароля: укажите пароль или создайте архив заново без шифрования.
  • Многотомные архивы (.z01, .z02… .zip): Убедитесь, что все части находятся в одной директории, и запустите программу для распаковки .zip-файла.
  • Ошибки CRC/повреждения данных: Попробуйте сначала использовать команду unzip -t; если это не удастся, запросите новый архив или попробуйте восстановить его с помощью команды zip -FF (на стороне создателя).

Zip или tar.gz: что лучше использовать?

  • Используйте .zip, когда вам необходима кроссплатформенная совместимость (Windows/macOS/Linux), сжатие файлов по отдельности и удобный графический интерфейс.
  • Используйте .tar.gz для работы с нативными приложениями Linux, повышения степени сжатия больших кодовых баз и сохранения прав доступа и владения в формате UNIX в одном архиве.
  • Для развертывания на серверах обычно используется формат tar.gz, но .zip тоже вполне подойдет, особенно при совместной работе с пользователями Windows.

Автоматизация распаковки в CI/CD и заданиях Cron

Обеспечьте детерминированность и безопасность извлечения данных в автоматизированном режиме. Используйте неинтерактивные флаги, гарантируйте идемпотентность и регистрируйте результаты.

# Example: deploy build artifact quietly and overwrite
set -euo pipefail
ARTIFACT="/tmp/build.zip"
DEST="/var/www/app"

if unzip -t "$ARTIFACT" >/dev/null; then
  mkdir -p "$DEST"
  unzip -q -o "$ARTIFACT" -d "$DEST"
  find "$DEST" -type d -exec chmod 755 {} \;
  find "$DEST" -type f -exec chmod 644 {} \;
  chown -R www-data:www-data "$DEST"
  echo "Deployment complete."
else
  echo "Invalid artifact. Aborting." >&2
  exit 1
fi

Для обеспечения бесперебойной работы распакуйте архив в каталог релиза и атомарно замените символическую ссылку после проверки.

Полезные советы и менее известные варианты

  • Сохранить метки времени: Команда `unzip` сохраняет сохраненные метки времени; проверьте это с помощью `ls -l`.
  • Чувствительность к регистру: Шаблоны чувствительны к регистру, если только локаль вашей системы не меняет это поведение; используйте классы символов (например, «*.{JPG,jpg}»).
  • Funzip для потоковой передачи: Функция funzip считывает данные из стандартного ввода и записывает декомпрессированные данные в стандартный вывод, что удобно в конвейерах обработки данных.
  • zipinfo для получения метаданных: Команда `zipinfo -1 archive.zip` выводит простой список имен файлов.
  • Исключить несколько каталогов: Объедините параметр -x с заключенными в кавычки шаблонами, чтобы пропустить папки node_modules, vendor или caches.

Часто задаваемые вопросы (FAQ)

Как распаковать файл в Linux в определенную директорию?

Используйте опцию -d. Пример: unzip archive.zip -d /path/to/target. Целевой каталог будет создан, если он не существует (если это возможно).

Как распаковать архив, не перезаписав существующие файлы?

Используйте -n, ​​чтобы «никогда не перезаписывать». Например: unzip -n archive.zip. Чтобы всегда перезаписывать без запроса подтверждения, используйте -o.

Как распаковать защищенный паролем ZIP-архив в Linux?

Запустите unzip archive.zip и введите пароль, когда появится соответствующий запрос. Или укажите его с помощью параметра -P “password” (не рекомендуется на общих системах из-за раскрытия истории командной строки).

Как вывести содержимое ZIP-архива без его распаковки?

Выполните команду `unzip -l archive.zip` для получения краткого списка или `unzip -v archive.zip` для получения подробной информации, такой как метод сжатия и размеры файлов.

Можно ли извлечь из ZIP-архива только определённые файлы или папки?

ДаУкажите шаблоны и исключения. Примеры: unzip app.zip “public/*.php” -d ./site или unzip app.zip -x “*/tests/*” “*.md”. Всегда заключайте шаблоны в кавычки, чтобы unzip мог их обработать.

Что означает сообщение "Подпись центра каталога не найдена"?

Скорее всего, файл не является действительным ZIP-архивом, неполный или вы загрузили страницу с ошибкой. Проверьте URL-адрес, загрузите файл повторно или проверьте целостность с помощью команды unzip -t и контрольных сумм.

Устанавливается ли Unzip по умолчанию в Linux?

Не всегдаУстановите его через ваш пакет. manageНапример, в Ubuntu/Debian можно выполнить команду `sudo apt install unzip`, а в системах на базе Fedora/RHEL — `sudo dnf install unzip`.


Заключение

Освоение команды unzip в Linux обеспечивает быстрое и удобное управление .zip архивами, идеально подходящее для разработчиков, системных администраторов и владельцев сайтов. Независимо от того, развертываете ли вы файлы в продакшене, восстанавливаете резервные копии или автоматизируете CI/CD, описанные выше параметры помогут вам безопасно и эффективно распаковывать архивы. Для оптимизированного хостинга с SSH и надежные операции с файлами, изучите YouStableпланы.

Отправить по:

Прахлад Праджапати

Пралад — специалист по веб-хостингу и эксперт по органическому росту сайтов с упором на SEO из Индии. Активно работая в цифровом пространстве с 2019 года, он помогает людям развивать свои веб-сайты с помощью эффективных и устойчивых стратегий. Увлеченный обучением и быстрой адаптацией, он считает, что мелкие детали приводят к большому успеху. Узнайте его мнение о веб-хостинге и SEO, чтобы улучшить свое присутствие в интернете.

Оставьте комментарий

Ваш электронный адрес не будет опубликован. Обязательные поля помечены * *

Наверх