Как распаковать zip-файл, состоящий из нескольких частей, в терминале?

#bash #terminal #zip #zsh #unzip

#bash #терминал #zip #zsh #распаковать

Вопрос:

Учитывая img.zip который содержит 13 копий одной и той же фотографии, мне нужно разделить zip-файл на части и иметь возможность разархивировать его из сгенерированных частей. Чтобы разделить его на равные части размером 100 КБ, я делаю:

 zip img.zip --out img-pt -s 100k
 

что приводит к

 100K    img-pt.z01
100K    img-pt.z02
100K    img-pt.z03
 40K    img-pt.zip
 

Я могу извлекать из сгенерированных частей с помощью keka на macOS. Однако я не могу разархивировать с помощью unzip , вот что я пытаюсь и получаю:

 >>> unzip img-pt.zip
Archive:  img-pt.zip
warning [img-pt.zip]:  zipfile claims to be last disk of a multi-part archive;
  attempting to process anyway, assuming all parts have been concatenated
  together in order.  Expect "errors" and warnings...true multi-part support
  doesn't exist yet (coming soon).
file #1:  bad zipfile offset (local header sig):  4
file #2:  bad zipfile offset (local header sig):  66
file #3:  bad zipfile offset (local header sig):  26614
file #4:  bad zipfile offset (lseek):  49152
file #5:  bad zipfile offset (lseek):  73728
file #6:  bad zipfile offset (local header sig):  3858
file #7:  bad zipfile offset (local header sig):  30406
file #8:  bad zipfile offset (lseek):  49152
file #9:  bad zipfile offset (lseek):  81920
file #10:  bad zipfile offset (local header sig):  7650
file #11:  bad zipfile offset (local header sig):  34198
file #12:  bad zipfile offset (lseek):  57344
file #13:  bad zipfile offset (lseek):  81920
 extracting: img/002.jpeg      
 

также

 >>> cat img-pt.z01 img-pt.z02 img-pt.z03 img-pt.zip > img.zip
>>> unzip img.zip
Archive:  img.zip
warning [img.zip]:  zipfile claims to be last disk of a multi-part archive;
  attempting to process anyway, assuming all parts have been concatenated
  together in order.  Expect "errors" and warnings...true multi-part support
  doesn't exist yet (coming soon).
warning [img.zip]:  307200 extra bytes at beginning or within zipfile
  (attempting to process anyway)
file #1:  bad zipfile offset (local header sig):  307204
  (attempting to re-compensate)
   creating: img/
 extracting: img/001.jpeg            
 extracting: img/007.jpeg            
 extracting: img/011.jpeg            
 extracting: img/010.jpeg            
file #6:  bad zipfile offset (local header sig):  3858
  (attempting to re-compensate)
file #6:  bad zipfile offset (local header sig):  3858
file #7:  bad zipfile offset (local header sig):  337606
file #8:  bad zipfile offset (lseek):  360448
file #9:  bad zipfile offset (lseek):  385024
file #10:  bad zipfile offset (local header sig):  314850
file #11:  bad zipfile offset (local header sig):  341398
file #12:  bad zipfile offset (lseek):  360448
file #13:  bad zipfile offset (lseek):  393216
 extracting: img/002.jpeg   
 

Как извлечь файлы в терминале без получения ошибки? И желательно без объединения частей

Комментарии:

1. Программа сообщает вам ожидать ошибок и предупреждений, потому что вы делаете что-то, что она не полностью поддерживает…

2. И все же он поддерживает разделение на несколько частей, что я нахожу довольно странным

3. Смотрите первый абзац раздела об ОШИБКАХ на странице руководства

4. Похоже, мне нужно использовать zip -F объединенные части, пока они не исправят все, что не так, в следующем выпуске.