2015-09-21 2 views
0

Я хотел бы создать zip, который содержит только подмножество на основе другого zip-файла. Есть ли более разумный способ сделать это, чем просто извлечь определенные файлы, а затем повторно закрепить их под новым именем?Как создать подзаголовок на основе содержимого другого почтового индекса?

Я ищу эффективный способ сделать это, так как исходный файл будет содержать тысячи и тысячи файлов и будет иметь приблизительный размер ~ 30 ГБ.

+0

можно сделать путем анализа (двоичный) оглавления в ZIP-файл вручную. Он находится в конце файла и содержит имя файла, смещение данных, метод сжатия и т. Д. После того, как у вас есть таблица, вы можете скопировать только нужные вам данные и добавить новую таблицу содержимого. Но я никогда не видел готовых к использованию инструментов (или библиотек), которые могли бы это сделать. – Dummy00001

ответ

1

, удалив другие вещи т.д .:

zip --delete file.zip junk/* 

Второй вариант, перечисляя зип файл с

zipinfo -1 file.zip >list.files 

и редактировать список файлов временно включить. Затем вы получите

unzip file.zip $(cat list.files) 

и создать новый почтовый файл. Конечно, тот же файл можно использовать для исключения для zip --delete. Или вы можете сделать то же самое, используя свой список файлов в лету в сочетании с grep, например.

Проверить также https://bitbucket.org/agalanin/fuse-zip

+0

Я сделал это вторым способом! Благодаря! :) – carlspring

Смежные вопросы