У меня есть скрипт, который архивирует файлы из папки. Я хочу убедиться, что размер ZIP-файла не превышает 10 МБ. Если размер больше 10 МБ, он должен создать еще один ZIP-файл.
Есть ли какая-либо команда (или другой метод), который может быть использован для этого?
Ответы:
Вы можете использовать функцию « разделить архив » самой « zip », используя опцию « --split-size ».
Из man-страницы "zip" ("
man zip
"):Итак, чтобы создать разделенный zip-архив , вы можете сделать следующее («
-r
» - это «рекурсивный» переключатель для включения подкаталогов каталога):$ zip -r -s 10m archive.zip directory/
Чтобы распаковать файл ,
zip
страница руководства " " объясняет, что вы должны использовать ключ "-s 0`":Итак, вы сначала «расщепляете» ZIP-файл, используя ключ «-s 0»:
$ zip -s 0 archive.zip --out unsplit.zip
... а затем вы распаковываете неразделенный файл:
$ unzip unsplit.zip
источник
Даст вам ряд файлов:
Который затем может быть распакован:
источник
Вот как я это сделал для файла объемом 5 ГБ (разделенного на 1 ГБ против 10 МБ, как спросил OP) ...
Пример: Чтобы разделить файл 5GB в 1 Гб файлов скопировать в FAT32 USB (имя файла «FIVE_GB_FILE.ISO»)
Шаг 1: заархивировать файл (без сжатия, тот же каталог, что и исходный код)
Шаг 2 : разделите ZIP-файл объемом 5 ГБ на ZIP-файлы объемом 1 ГБ
Вуаля ... у вас должны быть следующие 1 ГБ файлы (И оригинал, и почтовый индекс из шага 1)
источник