Чтобы рекурсивно разархивировать файлы в 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().р>