[ZIP] Créer un zip qui se contient lui même à l’infini ou presque !
Salut à tous,
Je reviens tout doucement de vacance, et j'avoue ça fait du bien !!!
La Bretagne c'est un peu mon petit coin de paradis, le soleil, l'eau fraîche et transparente de la côte, le relief mi-montagneux, mi-vallonné, les traditionnelles moules frites, les huîtres, les crabes.
... je m'égare ...
Mais que voulez-vous, la dure réalité de la reprise ...
Alors, je vous ai concocté un petit script qui crée une archive, sur autant de niveau que vous lui en donnerez : 10, 20, 100, 1 000, 1 000 000 000, ...
L'archive finale ne contient rien, c'est une archive vide ...
Alors ...
Comment créé-t-on une archive vide, et quel poids ça fait ?
En moyenne selon les différents logiciels le poids varie.
Il oscille légèrement entre 20 et 22 octets
Sur Windows :
Un simple clic droit dans un dossier, "Nouveau", "Archive"
Sur linux :
Un peu plus compliqué, mais tant que ça.
Il faut d'abord créer l'archive avec un fichier, puis supprimer ensuite le fichier de l'archive.
ziparchive_vide.zip unFichier
zip -d archive_vide.zip unFichier
Ok, jusque là on est plutôt bon !!!
Pourquoi créer une archive avec (x) récursion :
Plus le niveau de récursion sera haut, plus il sera difficile pour une personne physique ou un logiciel d'en contrôler la sécurité
Lorsque je dis compliqué, je ne dit pas impossible.
Seulement ça demandera à votre machine de travailler, surtout si elle doit en contrôler plusieurs.
On peut également, très facilement imaginer un usage type "Zip Bomb"
Ou bien, ça peut servir de planque pour vos données ;)
Place au script de récursion (Linux) :
Vous allez devoir créer un script bash contenant ceci :
Je pense avoir suffisamment commenté le code pour que vous puissiez comprendre un peu comment tout ça se goupille.
Vous avez la possibilité de donner n'importe quel nom à votre archive, ainsi que de définir le nombre de niveau(x) de récursion.
Petit exemple généré par mon script : https://dyrk.org/divers/infinity_test.zip