Несколько методов рекурсивного разархивирования файлов в Linux

Чтобы рекурсивно разархивировать файлы в Linux, вы можете использовать различные методы в зависимости от доступных инструментов в вашей системе. Вот несколько методов с примерами кода:

Метод 1: использование команды unzip

unzip -r your_archive.zip

Эта команда рекурсивно извлечет содержимое файла your_archive.zipв текущий каталог.

Метод 2: использование findи unzip

find . -name "*.zip" -exec unzip {} \;

Эта команда использует утилиту findдля поиска всех ZIP-файлов в текущем каталоге и его подкаталогах. Затем он выполняет команду unzipдля каждого найденного файла, извлекая его содержимое.

Способ 3: использование команды 7z(требуется p7zip)

7z x -r your_archive.zip

Этот метод использует команду 7zиз пакета p7zip. Флаг -rуказывает на рекурсивное извлечение файлов.

Метод 4. Использование Python

import zipfile
import os
def unzip_recursively(path):
    for root, dirs, files in os.walk(path):
        for file in files:
            if file.endswith(".zip"):
                filepath = os.path.join(root, file)
                with zipfile.ZipFile(filepath, "r") as zip_ref:
                    zip_ref.extractall(root)
# Usage
unzip_recursively("path/to/directory")

В этом примере кода Python мы используем модуль zipfileдля рекурсивного извлечения ZIP-файлов. Функция os.walk()используется для обхода дерева каталогов, и для каждого встреченного ZIP-файла мы извлекаем его содержимое с помощью zipfile.ZipFile().