Как разархивировать файлы на любом устройстве: Windows, macOS, Android, iOS и Linux
Разархивирование файла означает распаковку архива — как правило, контейнера .zip — для восстановления его исходного содержимого в пригодное для использования и чтения состояние. Все основные операционные системы поставляются со встроенной поддержкой извлечения, поэтому для стандартных архивов .zip стороннее программное обеспечение не требуется. Для таких форматов, как .7z, .rar, .tar.gz или защищённых паролем архивов, специализированные инструменты обеспечивают более широкую поддержку кодеков, более надёжную обработку шифрования и возможности пакетной обработки.
Это руководство охватывает все основные платформы с технической глубиной, включая методы командной строки, которые большинство руководств полностью пропускают, а также сравнение наиболее функциональных сторонних инструментов, распространённые сбои и сценарии, в которых каждый подход является правильным выбором.
Почему сжатие и извлечение файлов по-прежнему важны
Сжатые архивы уменьшают размер передаваемых данных, объединяют деревья каталогов в единый переносимый объект и сохраняют права доступа к файлам и метаданные, если формат это поддерживает. Например, в среде VPS Хостинга развёртывание приложения часто означает загрузку архива .tar.gz или .zip и его извлечение на стороне сервера — что делает извлечение из командной строки необходимым навыком, а не опциональным.
Понимание внутреннего устройства также предотвращает потерю данных. Файл .zip хранит каждую запись с собственным локальным заголовком и контрольной суммой CRC-32. Повреждённый центральный каталог в конце архива может сделать файл неработоспособным для GUI-инструментов, однако режим восстановления unzip -FF или 7-Zip зачастую позволяет восстановить большинство записей.
Как разархивировать файлы в Windows
Windows 10 и Windows 11 включают встроенный движок извлечения, интегрированный непосредственно в Проводник. Для стандартных архивов .zip установка сторонних программ не требуется.
Использование Проводника (метод GUI)
Шаг 1 — Найдите архив. Откройте Проводник и перейдите в папку, содержащую файл .zip. Zip-архивы отображаются в виде значка папки с наложенной графикой молнии.
Шаг 2 — Откройте контекстное меню. Щёлкните правой кнопкой мыши по файлу .zip. В Windows 11 сначала выберите Показать дополнительные параметры, если классическое контекстное меню не отображается сразу.
Шаг 3 — Извлечь всё. Нажмите Извлечь всё. Появится диалоговое окно с запросом пути назначения. По умолчанию это подпапка с именем архива, расположенная в том же каталоге.
Шаг 4 — Выберите место назначения и извлеките. Нажмите Обзор, чтобы выбрать другой путь, затем нажмите Извлечь. Проводник отображает индикатор выполнения для больших архивов.
Шаг 5 — Проверьте результат. После завершения папка назначения открывается автоматически. Убедитесь, что количество файлов и структура каталогов соответствуют ожидаемым, прежде чем удалять исходный архив.
Использование PowerShell (метод командной строки)
Для сценариев развёртывания, автоматизированных конвейеров или безголовых сред Windows Server подходящим инструментом является командлет Expand-Archive в PowerShell:
# Extract to a specific destination folder
Expand-Archive -Path "C:Downloadsarchive.zip" -DestinationPath "C:Projectsmyapp"
# Overwrite existing files without prompting
Expand-Archive -Path "C:Downloadsarchive.zip" -DestinationPath "C:Projectsmyapp" -ForceФлаг -Force критически важен в сценариях развёртывания — без него командлет выдаёт завершающую ошибку, если какой-либо файл в папке назначения уже существует.
Использование устаревшей команды tar (Windows 10 1803+)
Windows 10 сборки 1803 и более поздних версий поставляется с BSD tar, который нативно обрабатывает .zip наряду с .tar, .tar.gz и .tar.bz2:
tar -xf archive.zip -C C:ProjectsmyappФлаг -C указывает каталог назначения. Это особенно полезно в пакетных файлах и конвейерах CI/CD, где могут применяться ограничения политики выполнения PowerShell.
Критическая ловушка Windows: атрибут «Заблокировано»
Файлы, загруженные из интернета, получают тег Alternate Data Stream (Zone.Identifier), который Windows помечает как потенциально небезопасный. Извлечение заблокированного архива может незаметно удалить или поместить содержимое в карантин. Перед извлечением щёлкните правой кнопкой мыши по файлу .zip, выберите Свойства и установите флажок Разблокировать в нижней части вкладки «Общие» или используйте PowerShell:
Unblock-File -Path "C:Downloadsarchive.zip"Пропуск этого шага является одной из наиболее распространённых причин, по которым извлечённые исполняемые файлы или DLL не запускаются корректно в Windows.
Как разархивировать файлы в macOS
macOS включает Archive Utility, которая прозрачно обрабатывает извлечение .zip двойным щелчком. Для .tar.gz, .tar.bz2 и .7z Терминал обеспечивает полный контроль.
Использование Archive Utility (метод GUI)
Шаг 1 — Найдите архив. Откройте Finder и перейдите к файлу .zip. Он отображается в виде значка сжатой папки.
Шаг 2 — Дважды щёлкните для извлечения. Archive Utility запускается в фоновом режиме и извлекает содержимое в новую папку в том же каталоге, с именем, идентичным архиву, но без расширения .zip.
Шаг 3 — Проверьте результат. Новая папка появляется немедленно. Archive Utility не запрашивает место назначения — если вам нужно извлечь в определённый путь, используйте метод Терминала ниже.
Использование Терминала (метод командной строки)
# Extract a .zip archive to the current directory
unzip archive.zip
# Extract to a specific destination directory
unzip archive.zip -d /Users/yourname/Projects/myapp
# List archive contents without extracting
unzip -l archive.zip
# Extract a password-protected zip
unzip -P secretpassword archive.zip -d /tmp/outputДля архивов .tar.gz — стандартного формата для дистрибутивов программного обеспечения Linux и резервных копий серверов:
# Extract .tar.gz to current directory
tar -xzf archive.tar.gz
# Extract .tar.gz to a specific directory
tar -xzf archive.tar.gz -C /usr/local/myapp
# Extract .tar.bz2
tar -xjf archive.tar.bz2 -C /usr/local/myapp
# Extract .tar.xz (highest compression ratio)
tar -xJf archive.tar.xz -C /usr/local/myappСпецифическая ловушка macOS: Gatekeeper и карантин
macOS применяет расширенный атрибут com.apple.quarantine к загруженным архивам. Даже после извлечения содержимое наследует этот атрибут. Если извлечённые бинарные файлы отказываются запускаться, снимите флаг карантина:
xattr -rd com.apple.quarantine /path/to/extracted/folderЭто частый источник путаницы при развёртывании загруженных программных пакетов в macOS.
Как разархивировать файлы в Linux
Linux — это та среда, где извлечение из командной строки не является опциональным — это стандартный рабочий процесс, особенно на безголовых серверах. Если вы управляете Выделенным сервером или облачным VPS, эти команды являются ежедневными операциями.
Установка утилит для извлечения
Большинство дистрибутивов Linux включают unzip и tar по умолчанию. Если они отсутствуют:
# Debian / Ubuntu
sudo apt update && sudo apt install unzip p7zip-full
# RHEL / CentOS / AlmaLinux / Rocky Linux
sudo dnf install unzip p7zip p7zip-plugins
# Arch Linux
sudo pacman -S unzip p7zipИзвлечение ZIP-архивов
# Basic extraction to current directory
unzip archive.zip
# Extract to a specific directory (creates it if absent)
unzip archive.zip -d /var/www/html/mysite
# Extract a single file from the archive
unzip archive.zip config/settings.php -d /var/www/html/mysite
# Suppress output (useful in scripts)
unzip -q archive.zip -d /var/www/html/mysite
# Test archive integrity without extracting
unzip -t archive.zipИзвлечение TAR-архивов
# .tar.gz (gzip-compressed)
tar -xzf backup.tar.gz -C /var/backups/restored/
# .tar.bz2 (bzip2-compressed — slower but better ratio)
tar -xjf backup.tar.bz2 -C /var/backups/restored/
# .tar.xz (xz-compressed — best ratio, slowest)
tar -xJf backup.tar.xz -C /var/backups/restored/
# Verbose output — lists each file as it extracts
tar -xzvf backup.tar.gz -C /var/backups/restored/
# Extract a single file or directory from a tar archive
tar -xzf backup.tar.gz -C /tmp/ ./etc/nginx/nginx.confСохранение прав доступа и владельца файлов
Это критически важная деталь администрирования сервера, которую GUI-инструменты и базовые руководства неизменно упускают. При извлечении архивов приложений на сервере Linux необходимо сохранять владельца и права доступа:
# Preserve permissions (default with tar)
tar -xzpf archive.tar.gz -C /var/www/html/
# Extract and set ownership to www-data (web server user)
tar -xzf archive.tar.gz -C /var/www/html/ && chown -R www-data:www-data /var/www/html/myappФлаг -p в tar явно сохраняет права доступа. Без правильного владельца веб-приложения будут завершаться с ошибками отказа в доступе, даже если файлы существуют.
Как разархивировать файлы на Android
Android не включает встроенный менеджер архивов в стандартное файловое приложение на всех вариантах OEM. Как правило, требуется специализированное приложение.
Шаг 1 — Установите файловый менеджер с поддержкой архивов. Рекомендуемые варианты:
- Files by Google — чистый, минималистичный, нативно обрабатывает
.zip - ZArchiver — поддерживает
.zip,.7z,.rar,.tar.gz,.tar.bz2и зашифрованные архивы - RAR by RARLAB — официальное приложение от разработчиков WinRAR, обрабатывает
.rarи.zip
Шаг 2 — Перейдите к архиву. Откройте приложение и перейдите в папку, содержащую файл .zip или другой архив.
Шаг 3 — Начните извлечение. Нажмите и удерживайте или коснитесь архива. Выберите Извлечь или Извлечь здесь. ZArchiver предлагает выбор места назначения; Files by Google по умолчанию извлекает в тот же каталог.
Шаг 4 — Проверьте результат. Перейдите в папку назначения и убедитесь, что содержимое доступно.
Примечание для Android: Если архив был загружен через браузер, он обычно попадает в /storage/emulated/0/Download/. Некоторые файловые менеджеры OEM ограничивают доступ к определённым путям — если извлечение завершается без видимых ошибок, переключитесь на ZArchiver, который запрашивает более широкие разрешения на хранилище.
Как разархивировать файлы на iPhone и iPad
iOS 13 и более поздние версии включают нативное извлечение .zip в приложении Файлы. Для стандартных архивов стороннее приложение не требуется.
Шаг 1 — Откройте приложение «Файлы». Найдите файл .zip. Распространённые места хранения: Загрузки, iCloud Drive или На моём iPhone.
Шаг 2 — Коснитесь архива один раз. Приложение «Файлы» автоматически извлекает содержимое в новую папку в том же месте. Выбора места назначения нет — извлечение всегда происходит на месте.
Шаг 3 — Откройте извлечённую папку. Папка с тем же именем, что и архив (без .zip), появляется немедленно.
Для форматов, отличных от ZIP, в iOS: Приложение «Файлы» не обрабатывает .rar, .7z или .tar.gz. Используйте iZip (бесплатно, поддерживает .zip, .rar, .7z, .tar) или Archiver 4 (платно, отличная поддержка форматов и интеграция с iCloud).
Сторонние инструменты для работы с архивами: сравнение функций
Когда встроенных инструментов недостаточно — для обработки архивов .rar, zip-файлов с шифрованием AES-256, многотомных архивов или монолитных архивов — необходимы сторонние инструменты. В таблице ниже сравниваются наиболее широко используемые варианты по критериям, важным в профессиональных средах.
| Инструмент | Платформа | Лицензия | Поддерживаемые форматы | Шифрование | GUI | CLI | Ключевое преимущество |
|---|---|---|---|---|---|---|---|
| 7-Zip | Windows, Linux | Бесплатно / Открытый исходный код | ZIP, 7Z, TAR, GZ, BZ2, XZ, RAR (извлечение), ISO, WIM | AES-256 | Да | Да (7z) | Лучшая степень сжатия; полностью открытый исходный код |
| WinRAR | Windows, macOS | Условно-бесплатная (пробная) | RAR, ZIP, TAR, GZ, BZ2, 7Z, ISO, CAB | AES-256 | Да | Да (rar) | Лучшая поддержка создания и восстановления RAR |
| The Unarchiver | macOS | Бесплатно | ZIP, RAR, 7Z, TAR, GZ, BZ2, LZH, ISO, CAR | Ограниченное | Да | Нет | Наибольшая поддержка форматов для macOS; App Store |
| ZArchiver | Android | Бесплатно (доступна Pro-версия) | ZIP, 7Z, RAR, TAR, GZ, BZ2, XZ, ZST | AES-256 | Да | Нет | Лучший менеджер архивов для Android |
| iZip | iOS | Бесплатно (доступна Pro-версия) | ZIP, RAR, 7Z, TAR, GZ | AES-256 | Да | Нет | Глубокая интеграция с приложением «Файлы» и iCloud |
| p7zip | Linux | Бесплатно / Открытый исходный код | ZIP, 7Z, TAR, GZ, BZ2, XZ, RAR (извлечение) | AES-256 | Нет | Да (7z) | Серверное скриптование; идентичен 7-Zip |
| PeaZip | Windows, Linux | Бесплатно / Открытый исходный код | 200+ форматов | AES-256 | Да | Да | Наибольшая поддержка форматов; портативная версия |
Работа с защищёнными паролем и зашифрованными архивами
Защищённые паролем архивы широко используются при безопасной передаче файлов, распространении программного обеспечения и рабочих процессах резервного копирования. Каждый инструмент обрабатывает их немного по-разному.
В Windows с 7-Zip:
# 7-Zip command-line extraction with password
7z x archive.zip -pYourPassword -o"C:output"В Linux / macOS с unzip:
unzip -P YourPassword archive.zip -d /output/pathВ Linux с 7z (p7zip):
7z x archive.7z -pYourPassword -o/output/pathВажное замечание по безопасности: Передача паролей в качестве аргументов командной строки раскрывает их в списках процессов (ps aux) и истории оболочки. В производственных средах используйте файл паролей или переменную окружения:
# Read password from a file (7-Zip supports this via stdin piping)
7z x archive.7z -p"$(cat /etc/archive-password)" -o/output/pathПосле этого очистите историю оболочки с помощью history -c или настройте HISTCONTROL=ignorespace и добавьте пробел перед командой.
Извлечение архивов на удалённом сервере
При управлении веб-приложениями на VPS с cPanel или на чистом Linux VPS наиболее эффективный рабочий процесс развёртывания — загрузить архив и извлечь его на стороне сервера, а не передавать тысячи отдельных файлов.
# Upload archive via SCP
scp myapp.tar.gz user@yourserver.com:/var/www/html/
# SSH into the server and extract
ssh user@yourserver.com
cd /var/www/html/
tar -xzf myapp.tar.gz
rm myapp.tar.gz # Remove archive after successful extractionДля больших архивов запускайте извлечение внутри сессии screen или tmux, чтобы предотвратить прерывание при разрыве SSH-соединения:
screen -S deploy
tar -xzf largebackup.tar.gz -C /var/www/html/
# Detach with Ctrl+A, D — reattach with: screen -r deployЭтот подход является стандартной практикой при восстановлении резервных копий или развёртывании пакетов приложений на Выделенных серверах.
Распространённые ошибки при извлечении и способы их устранения
«End-of-central-directory signature not found» — Архив усечён или повреждён. Это происходит при прерванных загрузках. Повторно загрузите файл и проверьте его контрольную сумму MD5/SHA256, если источник её предоставляет. Попробуйте восстановление с помощью:
zip -FF corrupted.zip --out recovered.zip
unzip recovered.zip -d /output«Cannot create file: filename too long» — В Windows действует ограничение MAX_PATH в 260 символов. Включите поддержку длинных путей в групповой политике (Computer Configuration > Administrative Templates > System > Filesystem > Enable Win32 long paths) или используйте 7-Zip, который обходит это ограничение.
«Permission denied» при извлечении в Linux — Каталог назначения принадлежит другому пользователю или имеет ограничительные права доступа. Используйте sudo для команды извлечения или сначала скорректируйте владельца:
sudo chown -R $USER:$USER /destination/path
unzip archive.zip -d /destination/path«Unsupported compression method» — Архив использует алгоритм сжатия, который инструмент не поддерживает (например, Zstandard в новых реализациях ZIP или LZMA в файлах .zip, созданных 7-Zip). Установите 7-Zip или p7zip, которые поддерживают наибольший набор алгоритмов.
Файлы извлечены, но выглядят пустыми или имеют нулевой размер — Часто вызвано извлечением .zip, содержащего только структуру каталогов без фактических данных файлов, или особенностью Archive Utility в macOS с определёнными файлами .zip, созданными в Linux. Используйте unzip -l archive.zip для проверки содержимого перед извлечением.
Матрица решений: выбор правильного метода извлечения
| Сценарий | Рекомендуемый метод |
|---|---|
Стандартный .zip на рабочем столе Windows | Проводник > Извлечь всё |
| Сценарий развёртывания на Windows Server | PowerShell Expand-Archive |
Стандартный .zip на рабочем столе macOS | Двойной щелчок (Archive Utility) |
.tar.gz / .tar.bz2 в macOS или Linux | Терминал tar -xzf / tar -xjf |
| Извлечение на стороне сервера на Linux VPS | unzip или tar через SSH |
Архив .rar на любой платформе | 7-Zip (Windows/Linux) или The Unarchiver (macOS) |
| Защищённый паролем архив | 7-Zip CLI с флагом -p |
| Восстановление повреждённого архива | zip -FF, затем unzip, или восстановление в 7-Zip |
| Мобильное устройство (Android) | ZArchiver |
| Мобильное устройство (iOS) | Приложение «Файлы» (.zip) или iZip (другие форматы) |
Многотомный архив (.zip.001, .part1.rar) | 7-Zip или WinRAR |
Технический контрольный список ключевых выводов
- Всегда проверяйте целостность архива с помощью
unzip -tили7z tперед извлечением в производственные каталоги. - На серверах Linux используйте
tar -xzpf(обратите внимание на флаг-p) для сохранения прав доступа к файлам при извлечении пакетов приложений. - Разблокируйте загруженные файлы
.zipв Windows перед извлечением, чтобы избежать незаметного помещения файлов в карантин. - Удалите атрибут карантина macOS из извлечённых бинарных файлов с помощью
xattr -rd com.apple.quarantine. - Никогда не передавайте пароли архивов в виде обычных аргументов CLI в общих или журналируемых средах — используйте файл секретов или переменную окружения.
- Для развёртывания на серверах выполняйте извлечение внутри сессии
screenилиtmux, чтобы пережить разрывы SSH-соединений. - Используйте 7-Zip или p7zip в качестве универсального запасного варианта — он обрабатывает больше форматов и граничных случаев, чем любой встроенный инструмент на любой платформе.
- После извлечения в каталог веб-сервера всегда проверяйте владельца (
ls -la) и устанавливайте его на пользователя веб-сервера (www-data,nginxилиapache) перед тестированием приложения.
FAQ
Поддерживает ли Windows 11 нативное извлечение .7z и .rar?
Нет. Встроенный движок извлечения Windows 11 обрабатывает только .zip, .cab и .tar (через команду tar). Для .7z, .rar и других форматов необходимо установить 7-Zip или WinRAR.
В чём разница между .zip и .tar.gz?
Архив .zip сжимает каждый файл независимо и хранит их с отдельными заголовками, что обеспечивает быстрый произвольный доступ, но снижает общую эффективность сжатия. .tar.gz сначала объединяет все файлы в единый несжатый поток .tar, а затем применяет gzip-сжатие ко всему потоку — достигая лучшей степени сжатия, но требуя полной последовательной распаковки для доступа к любому отдельному файлу.
Можно ли извлечь файл .zip непосредственно на сервере Linux, не загружая его локально?
Да. Используйте wget или curl для загрузки архива непосредственно на сервер, а затем извлеките его на месте. Для общедоступных архивов можно также передать URL через curl непосредственно в bsdtar: curl -L https://example.com/archive.zip | bsdtar -xf- -C /destination/.
Почему извлечённые файлы иногда имеют неправильные права доступа на сервере Linux?
Формат .zip хранит права доступа UNIX только в том случае, если архив был создан в UNIX-подобной системе с совместимым инструментом. Архивы, созданные в Windows, как правило, не содержат метаданных прав доступа, поэтому unzip назначает права по умолчанию на основе текущего umask. Явно используйте chmod и chown после извлечения для установки правильных прав доступа для вашего веб-сервера или пользователя приложения.
Безопасно ли извлекать архивы, полученные по электронной почте, непосредственно на сервере?
Нет. Всегда сначала проверяйте содержимое архива с помощью unzip -l или 7z l перед извлечением. Вредоносные архивы могут содержать последовательности обхода пути (например, ../../etc/cron.d/backdoor), которые записывают файлы за пределами предполагаемого места назначения. Используйте unzip -d /safe/sandbox/path и проверьте результат перед перемещением файлов в производственную среду. Рассмотрите возможность сканирования с помощью ClamAV на серверах, обрабатывающих загружаемые пользователями архивы.
