Создание 2 частей zip, начиная с определенного байта

У меня есть 7 ГБ каталог на моем сервере, и я хочу загрузить его на свой компьютер. Я заархивировал его с помощью этой команды:

zip -9 -r sc.zip FOLDER/

Я загрузил его на свой компьютер. Но ZIP-файл размером более 4 ГБ выдает слишком большую ошибку, потому что я использую FAT32. Итак, я скачал 4294966367 байт (около 4 ГБ) zip-файла и загрузка остановилась. Можно ли переархивировать папку с 2 частями, но первая часть будет точно 4294966367 байт, а вторая часть должна начинаться с 4294966368-го байта. После этого, я надеюсь, мне просто нужно скачать вторую часть и использовать предыдущий загруженный файл 4 ГБ в качестве первой части.

Вскоре я уже скачал 4 ГБ почтового индекса, теперь я не хочу загружать его заново с нуля. Можно ли переархивировать каталог, начиная с 4 Гб?

1-е обновление: я знаю, что могу использовать параметр -s, но он получает минимальные килобайты, а не байты.

2-е обновление: я разделил большой .zip файл с этой командой:

split -b 4294966367 -d sc.zip sc-part

Сейчас есть sc-part00 и sc-part01. Я скачал эти 2 файла и соединил их в один .zip файл с этой командой:

cat sc-part* > file.zip

Однако при попытке распаковать его возникает ошибка:

ошибка

2 ответа

предупреждение [son.zip]: 3201769768 лишних байтов в начале или внутри zipfile

У вас есть: 7 Гб полный файл разделен на 2 части, 1-й 4 ГБ и 2-й 3 ГБ. Так что мне кажется, что unzip не удалось найти магический байт почтового индекса, пока он не достигнет 3201769769, Если вы проверите точно 3201769768 это размер 2-й части.

По сути, вы поменяли местами порядок деталей при соединении с cat, Проверять:

  • Попробуйте поменяться местами: cat sc-part01 sc-part00 > file.zip
  • Проверьте их контрольные суммы md5sum sc-part* для тех, кто на сервере и те, на локальном компьютере.

Кстати, есть много способов плюнуть файл в определенный байт. Пример:

  • tail -c <remaining-size> <source-file> > <destination-file>
  • dd if=<source-file> iflag=skip_bytes skip=<number-of-bytes-to-skip> of=<destination-file>

Простой ответ: разделите каталог на два одинаковых по размеру каталога и заархивируйте каждый из них. Затем распакуйте их и рекомбинируйте на вашем компьютере.

Я вижу, что вы на Mac. попробуй это:

scp -R [username]@[server_ip]:[directory_path] ./

Это должно делать все по SSH, при условии, что вы настроили это.

Другие вопросы по тегам