Division en plusieurs fichiers .ZIP à l'aide de 7-Zip


12

Si j'ai un dossier de 100 Go et que je le divise en ZIP, y a-t-il une différence dans la quantité d'espace disque consommée si je le divise en 100 fichiers .ZIP à 1 Go chacun ou 10 fichiers .ZIP à 10 Go chacun?

100 fichiers .ZIP de 1 Go chacun occupent-ils plus d'espace que 10 fichiers .ZIP de 10 Go chacun?


Et vous ne pouvez pas le savoir parce que?
Dave

5
Pourquoi ne pouvez-vous pas simplement l'essayer?
Peter Mortensen

1
Chaque fichier ZIP autonome a une surcharge. Cependant, vous pouvez couper un fichier ZIP en morceaux qui peuvent être réassemblés. Ces pièces n'ont pas de surcharge ZIP dans chacune, et si vous vous divisez aux limites de secteurs ou de blocs, elles ne contiennent pas d'espace gaspillé.
fixer1234

Réponses:


18

Découvrons-le!

Fichiers de 100 Mo (27 pièces):

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

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

Fichiers de 10 Mo (262 pièces):

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

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

Résultats: l'archive fractionnée de 10 Mo occupe 24 Ko supplémentaires. Alors oui, il y a une différence, les 100 fichiers de 1 Go prendront plus d'espace que les 10 fichiers de 10 Go.

La différence semble cependant négligeable. Je choisirais ce qui vous convient le mieux.


4
dune génère pas la taille en octets par défaut (sauf si vos 270 millions de fichiers sont transformés en 2 677 908 octets). Il affiche la taille des fichiers sur le disque, qui peut être différente de la taille réelle des données (peut-être applicable pour le téléchargement ou le stockage sur d'autres systèmes de fichiers)
Xen2050

Vous avez raison, la sortie est en fait en Ko. J'ai modifié la réponse pour corriger cet écart. Le fichier d'origine est un ISO Kali Linux, il est ~ 2,6 Go. Vous avez un bon point sur la taille du disque par rapport à la taille réelle des données, je pensais spécifiquement à la taille sur le disque car cela représente la surcharge d'avoir des fichiers supplémentaires, mais vous avez raison, ce serait différent en fonction de ce que vous '' re fait avec les archives.
Layne Bernardo

Désolé, j'ai croisé votre réponse en grande partie similaire pendant que je vérifiais les chaînes d'exécution.
AFH

La taille maximale du fichier zip est de 4 Go.
chat

1
Oui, c'est pourquoi je n'ai pas pris la peine de calculer un pourcentage. Je ne pense pas que cela fonctionne avec un pourcentage fixe de la taille du fichier d'origine, en particulier compte tenu des différences dans les systèmes de fichiers.
Layne Bernardo

15

Chaque fichier a une surcharge du système de fichiers d'espace de secteur logique inutilisé après la fin du fichier, mais cela est éliminé si la taille de fractionnement est un multiple de la taille de secteur logique (pas nécessairement vrai de mon exemple ci-dessous).

Il peut y avoir des octets supplémentaires utilisés par les entrées de répertoire supplémentaires, mais celles-ci ne figureront que si le répertoire occupe maintenant un secteur logique supplémentaire.

Le contenu des fichiers fractionnés est identique à ceux créés par un programme de division binaire avec la même taille de division.

J'ai vérifié ceux-ci sur Linux en utilisant la version GUI sur un fichier de 7 + Mo, donnant 8 fichiers divisés de 1 Mo avec 7-Zip ( File.7z.00?), puis Full.7zj'ai créé une seule archive complète ( ), avec laquelle je me suis divisé: -

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

Pour tester sur un autre système d'exploitation, vous devrez peut-être télécharger ou écrire un programme de séparation approprié.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.