В работе, учёбе и повседневной жизни мы часто сталкиваемся с архивами – файлами, в которые упакованы несколько документов, изображений, программ и т.д. Иногда требуется извлечь не весь архив, а только отдельные файлы или папки. Ниже подробно описаны способы сделать это в разных операционных системах и с помощью различных инструментов.
Что такое «часть архива»?
Под «частью архива» понимается извлечение одного или нескольких файлов (или директорий) из уже существующего архива без распаковки всего его содержимого. Это экономит время и дисковое пространство, особенно когда архив большой.
Основные форматы архивов
- ZIP – самый распространённый формат, поддерживается почти всеми архиваторами.
- RAR – популярный формат с высокой степенью сжатия; требует специальных программ (WinRAR, 7‑Zip, unrar).
- 7z – формат с высокой степенью сжатия, открывается 7‑Zip и другими утилитами.
- TAR, TGZ, TBZ2 – часто используются в Unix‑like системах; могут быть сжаты gzip, bzip2 и др.
- ISO, CAB, ARJ, LZH – менее распространённые, но также поддерживаются многими инструментами.
Извлечение части архива через графические интерфейсы
WinRAR (Windows)
- Откройте WinRAR и перейдите к нужному архиву.
- Дважды щелкните по архиву – откроется его содержимое.
- Отметьте галочками файлы/папки, которые нужно извлечь.
- Нажмите кнопку Извлечь (Extract to) или используйте контекстное меню → Извлечь файлы….
- Укажите папку назначения и подтвердите действие.
7‑Zip (Windows, Linux, macOS)
- Щёлкните правой кнопкой мыши по архиву → 7‑Zip → Открыть архив.
- В окне 7‑Zip выберите нужные элементы.
- Нажмите Извлечь, укажите путь и нажмите OK.
The Unarchiver (macOS)
- Дважды кликните по архиву – он откроется в The Unarchiver.
- В списке содержимого отметьте нужные файлы.
- Перетащите выделенные элементы в любую папку Finder.
File Roller (GNOME, Linux)
- Щёлкните правой кнопкой по архиву → Открыть с помощью Архиватор.
- Выберите файлы, нажмите Извлечь и укажите директорию назначения.
Извлечение части архива через командную строку
Командная строка полезна, когда нужно автоматизировать процесс или работать на серверах без GUI.
ZIP
unzip archive.zip file1.txt path/to/file2.jpg -d destination_folder
Где:
archive.zip– имя архива;file1.txt,path/to/file2.jpg– файлы, которые нужно извлечь;-d destination_folder– папка, в которую будут помещены извлечённые элементы.
RAR
unrar x archive.rar file1.txt path/to/file2.jpg destination_folder/
Опция x извлекает с полными путями. Если нужно извлечь без сохранения структуры каталогов, используйте e.
7z
7z x archive.7z file1.txt path/to/file2.jpg -oDestinationFolder
Опция -o указывает выходную директорию (пробел после -o не ставится).
TAR (с возможным сжатием)
# Для обычного tar
tar -xvf archive.tar file1.txt path/to/file2.jpg -C DestinationFolder
tar -xzvf archive.tar.gz file1.txt path/to/file2.jpg -C DestinationFolder
tar -xjvf archive.tar.bz2 file1.txt path/to/file2.jpg -C DestinationFolder
Опции:
-x– извлечь;-v–verbose (подробный вывод);-f– указать файл архива;-z– gzip;-j– bzip2;-C– сменить директорию перед извлечением;
Извлечение части архива с помощью скриптов
Если нужно извлечь файлы по определённому шаблону или выполнять дополнительную обработку, удобно написать небольшой скрипт.
Python (работает с ZIP, RAR через rarfile, 7z через py7zr)
import zipfile
import os
archive_path = 'example.zip'
extract_to = 'extracted_part'
files_to_extract = ['data/report.pdf', 'images/photo.png']
os.makedirs(extract_to, exist_ok=True)
with zipfile.ZipFile(archive_path, 'r') as zipf:
for file in files_to_extract:
if file in zipf.namelist:
zipf.extract(file, extract_to)
else:
print(f'Файл {file} не найден в архиве')
Bash + unrar (извлечение всех файлов с определенным расширением)
#!/bin/bash
archive="backup.rar"
dest="extracted_images"
mkdir -p "$dest"
unrar x "$archive" ".jpg" ".png" "$dest"
Советы и лучшие практики
- Проверяйте целостность архива перед извлечением (
unzip -t,unrar t,7z t). - Если архив защищён паролем, укажите его при извлечении (
unzip -P пароль,unrar x -pпароль). - Для больших архивов удобно извлекать во временную директорию, а затем перемещать нужные файлы.
- При работе с сетевыми хранилищами проверяйте скорость чтения – извлечение части архива значительно быстрее полной распаковки.
- Не забывайте о правах доступа: извлечённые файлы могут наследовать права архива; при необходимости измените их (
chmod,chown).
Извлечение части архива – простая, но очень полезная операция, которая экономит время и дисковое пространство. В зависимости от вашей операционной системы и предпочтений вы можете воспользоваться графическими архиваторами (WinRAR, 7‑Zip, The Unarchiver, File Roller), командной строкой (unzip, unrar, 7z, tar) или написать собственный скрипт на Python/Bash. Выбирайте метод, который лучше всего подходит под вашу задачу, и соблюдайте рекомендации по проверке целостности и безопасности данных.
Если у вас остались вопросы или нужны примеры для конкретного формата архива – не стесняйтесь задавать их в комментариях!