Создание 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, при условии, что вы настроили это.