Розщеплення на багато .ZIP-файлів за допомогою 7-Zip


12

Якщо у мене є папка в 100 ГБ, і я розділив її ZIP, чи є різниця у тому, скільки місця на диску буде використано, якщо я розділю його на 100 .ZIP-файлів по 1 ГБ кожен або 10 .ZIP-файлів по 10 ГБ кожен?

Чи займають 100 .ZIP-файлів об’ємом 1 Гб, кожен займає більше місця, ніж 10 .ZIP-файлів по 10 ГБ кожен?


І ви не можете цього дізнатися?
Дейв

5
Чому ви не можете просто спробувати?
Пітер Мортенсен

1
Кожен окремий файл ZIP має деякі накладні витрати. Однак ви можете подрібнити ZIP-файл на шматки, які можна повторно зібрати. Ці шматочки не мають накладних розмірів ZIP у кожному з них, і якщо ви розділите на межі сектору чи блоку, вони не містять витраченого місця.
fixer1234

Відповіді:


19

Давай дізнаємось!

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 ГБ займуть більше місця, ніж 10 10 ГБ файли.

Однак різниця здається незначною. Я б пішов на те, що вам зручніше.


4
duне виводить розмір у байтах за замовчуванням (якщо тільки ваші 270 М файлів не перетворилися на 2 677 908 байт). Він відображає розмір файлів на диску, який може відрізнятися від фактичного розміру даних (можливо, застосовний для завантаження чи зберігання в інших файлових системах)
Xen2050

Ви маєте рацію, вона фактично виводиться в КБ Я відредагував відповідь, щоб виправити цю невідповідність. Оригінальний файл - ISO Kali Linux, він ~ 2,6 Гб. У вас є хороша думка щодо розміру диска та фактичного розміру даних, я спеціально замислювався про розмір диска, оскільки це пояснює накладні витрати на наявність додаткових файлів, але ви праві, що це буде різним залежно від того, що ви насправді робиш з архівами.
Лейне Бернардо

Вибачте, я схрестив вашу багато в чому подібну відповідь, коли я двічі перевіряв рядки запуску.
АФХ

Максимальний розмір zip-файлу - 4 Гб.
пібі

1
Так, саме тому я не переймався обчисленням відсотків. Я не думаю, що це спрацьовує з рівним відсотком оригінального розміру файлу, особливо з урахуванням відмінностей у файлових системах.
Layne Bernardo

15

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

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

Файли розбиття за змістом ідентичні файлам, створеним програмою роздвоєння двійкових файлів з однаковим розміром.

Я перевірив їх в Linux, використовуючи версію GUI у файлі 7 + MB, давши 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

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.