Назад | Перейти на главную страницу

Удаление файлов из Zip-архива в Linux

У меня есть ситуация, когда мне нужно иметь возможность запускать скрипт и удалять определенные файлы в zip-архиве. Ниже представлена ​​общая настройка

/mnt/directory
/mnt/directory/Folder1
/mnt/directory/Folder1/file1.zip
/mnt/directory/Folder1/file2.zip
/mnt/directory/Folder2
/mnt/directory/Folder2/Documents
/mnt/directory/Folder2/file1.zip
/mnt/directory/Folder2/file2.zip

Затем в каждом zip-файле есть много файлов и каталогов. В глубине может быть более 20 каталогов, поэтому мне нужно убедиться, что все, что я делаю, рекурсивно просматривает файлы.

Я играл с zipinfo -1 /mnt/directory/Folder1/file1.zip '.txt '* она находит все файлы .txt в file1.zip, но я не могу использовать подстановочный знак для команды zipinfo, чтобы она выполняла поиск по всем zip-файлам. Кроме того, мне все еще нужно иметь возможность удалить их постфактум. Я также тестировал zip -d /mnt/directory/Folder1/file1.zip filename.txt. Это отлично работает только для 1 файла и 1 файла, если он не находится в папке. Итак, опять же, не идеально для моей ситуации.

Я могу разархивировать их, если необходимо, но я бы предпочел не так, поскольку некоторые из них очень большие, и мне все равно придется их застегнуть.

Спасибо.

Модуль Архив :: Zip похоже, он сделает то, что вам нужно.