У меня есть каталог 7 ГБ на моем сервере, и я хочу загрузить его на свой ПК. Я заархивировал его с помощью этой команды:
zip -9 -r sc.zip FOLDER/
Я скачал его на свой ПК. Но ZIP-файл размером более 4 ГБ выдает ошибку File too large , потому что я использую FAT32. Итак, я скачал 4294966367 байт (около 4 ГБ) zip-файла и загрузка остановилась. Можно ли переархивировать папку с 2 частями, но первая часть будет точно 4294966367 байт, а вторая часть должна начинаться с 4294966368-го байта. После этого, я надеюсь, мне просто нужно скачать вторую часть и использовать предыдущий загруженный файл 4 ГБ в качестве первой части.
Вскоре я уже скачал 4 ГБ zip-архива, теперь я не хочу перезагружать его с нуля. Можно ли переархивировать каталог, начиная с 4-го ГБ?
1-е обновление: Я знаю, что могу использовать параметр -s , но он получает минимальные килобайты, а не байты.
2-е обновление: Я разбил большой файл .zip
с помощью этой команды:
split -b 4294966367 -d sc.zip sc-part
Теперь есть sc-part00 и sc-part01. Я скачал эти 2 файла и соединил их в один файл .zip
с помощью следующей команды:
cat sc-part* > file.zip
Однако при попытке разархивировать файл возникает ошибка:
предупреждение [son.zip]: 3201769768 дополнительных байтов вначале или в zipfile
Вы имеете: полное разделение файла на 7 ГБ к 2 частям, 1-м 4 ГБ и 2-е 3 ГБ. Таким образом, мне кажется, что unzip
не мог найти, что байт волшебства zip до него не достигает 3201769769
. Если Вы проверяете точно 3201769768
, размер 2-й части.
В основном, Вы подкачали порядок частей, когда присоединено с cat
. Проверять:
cat sc-part01 sc-part00 > file.zip
md5sum sc-part*
для тех в сервере и тех в локальной машине. BTW, существует много способов плюнуть файлом в определенный байт. Пример:
tail -c <remaining-size> <source-file> > <destination-file>
dd if=<source-file> iflag=skip_bytes skip=<number-of-bytes-to-skip> of=<destination-file>
Легкий ответ: разделите каталог на измеренные каталоги двух equalish и архивируйте каждого из них. Затем разархивируйте их и повторно объедините их на своем ПК.
Я вижу, что Вы находитесь на Mac. попробуйте это:
scp -R [username]@[server_ip]:[directory_path] ./
Это должно сделать все это по SSH, предположив, что Вы имеете, это настроило.