10

Если у меня есть папка размером 100 ГБ, и я разделяю ее на ZIP, есть ли разница в том, сколько дискового пространства используется, если я разделю ее на 100?ZIP файлы по 1 ГБ каждый или 10.ZIP-файлы по 10 ГБ каждый?

Сделать 100.ZIP-файлы объемом 1 ГБ каждый занимают больше места, чем 10.ZIP-файлы по 10 ГБ каждый?

2 ответа2

16

Давайте разберемся!

100 МБ файлов (27 штук):

7z a -tzip -v100M ./100m/archive ./kali-linux-xfce-2018.2-amd64.iso

$ du ./100m/
2677884 ./100m/

10 МБ файлов (262 штуки):

7z a -tzip -v10M ./10m/archive ./kali-linux-xfce-2018.2-amd64.iso

$ du ./10m/
2677908 ./10m

Результаты: разделенный архив на 10 МБ занимает дополнительные 24 КБ. Так что да, есть разница, файлы размером 100 1 ГБ будут занимать больше места, чем файлы размером 10 10 ГБ.

Разница кажется незначительной, хотя. Я бы пошел на то, что вам удобнее.

16

Каждый файл имеет накладные расходы файловой системы на неиспользуемое пространство логического сектора после конца файла, но это устраняется, если размер разделения кратен размеру логического сектора (не обязательно верно для моего примера ниже).

Могут быть дополнительные байты, используемые дополнительными записями каталога, но они не будут отображаться, если каталог теперь не занимает дополнительный логический сектор.

Разделенные файлы идентичны по содержанию файлам, созданным двоичной программой-разделителем с таким же размером разделения.

Я проверил это в Linux, используя версию GUI для файла размером 7+ МБ, предоставив 8 разделенных файлов размером 1 МБ с 7-Zip (File.7z.00?), Затем создал один полный архив (Full.7z), который я разделил с:-

7z -v1000000 a File;                                         # Create split volumes File.7z.00?
7z a Full File;                                              # Create full archive Full.7z
split -b 1000000 -a 3 --numeric-suffixes=1 Full.7z Full.7z.; # Split full archive into Full.7z.00?
for f in {001..008}; do cmp Full.7z.$f File.7z.$f; done;     # Compare splits with 7z volumes

Для тестирования на другой ОС вам может понадобиться загрузить или написать соответствующую программу-разветвитель.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .