Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
zip [Le 05/11/2023, 15:17]
86.202.8.12 [Format ZIP]
zip [Le 11/01/2024, 12:52] (Version actuelle)
141.227.26.230 [Création]
Ligne 28: Ligne 28:
 =====Gérer les .zip en ligne de commande===== =====Gérer les .zip en ligne de commande=====
  
-Ce type d'​utilisation ​se fait plutôt dans des scripts. ​On utilise ​alors les commandes **zip** (création) et **unzip** (extraction). Pour connaître les options, tapez **man zip** ou **man unzip** au terminal. Ci-dessous les commandes de bases.+Ce type d'​utilisation ​a deux avantages principaux :  
 +  - certaines options ne sont guère disponibles qu'en ligne de commande. 
 +  - Créer ​des scripts. ​ 
 +En ligne de commande, on utilise les commandes **zip** (création) et **unzip** (extraction). Pour connaître les options, tapez **man zip** ou **man unzip** au terminal. Ci-dessous les commandes de bases.
  
 ==== Création ==== ==== Création ====
 +Il existe de nombreuses options de création. Pour les avoir toutes, tapez **man zip** dans un terminal. Voilà les plus importantes.
 +
   zip votre_archive.zip fichier1 fichier2 fichier3   zip votre_archive.zip fichier1 fichier2 fichier3
 Cet exemple crée le fichier **votre_archive.zip** à partir de la liste des fichiers qui suivent, et qui sont séparés par des espaces. Cet exemple crée le fichier **votre_archive.zip** à partir de la liste des fichiers qui suivent, et qui sont séparés par des espaces.
-  zip -r votre_archive.zip ​dossier ​à archiver/compresser+  zip -r votre_archive.zip ​dossier1-à-archiver dossier2-à-archiver
 Dans cet exemple, l'​option **-r** implique la récursivité,​ c'est à dire que zip va compresser/​archiver TOUT ce qui se trouve dans le ou les répertoires indiqués, __y compris__ les sous-répertoires. Dans cet exemple, l'​option **-r** implique la récursivité,​ c'est à dire que zip va compresser/​archiver TOUT ce qui se trouve dans le ou les répertoires indiqués, __y compris__ les sous-répertoires.
   zip -r votre_archive.zip *   zip -r votre_archive.zip *
 Dans cet exemple, l'​astérisque "​**%%*%%**"​ indique que TOUT dans le répertoire courant doit être zippé, et l'​option **-r** indique que cela inclut aussi les sous-répertoires. Dans cet exemple, l'​astérisque "​**%%*%%**"​ indique que TOUT dans le répertoire courant doit être zippé, et l'​option **-r** indique que cela inclut aussi les sous-répertoires.
-  zip -e votre_archive.zip liste des fichiers+  zip -e votre_archive.zip liste-des-fichiers
 L'​option **-e** chiffre le zip et demande un mot de passe (a saisir 2 fois a la création, et une seule fois a la décompression). L'​option **-e** chiffre le zip et demande un mot de passe (a saisir 2 fois a la création, et une seule fois a la décompression).
- 
-Afin de compresser plusieurs sous-répertoires séparément (bash) : 
   for f in *; do zip "​$f.zip"​ "​$f"/​*;​ done   for f in *; do zip "​$f.zip"​ "​$f"/​*;​ done
 +Cette commande [[bash|bash]] permet de compresser plusieurs sous-répertoires,​ avec des ZIP séparés (un par répertoire).
 ==== Extraction ==== ==== Extraction ====
   unzip votre_archive.zip -d mon_repertoire   unzip votre_archive.zip -d mon_repertoire
Ligne 51: Ligne 54:
 <​code>​unzip '​*.zip'</​code>​ <​code>​unzip '​*.zip'</​code>​
  
-===== Archives ​zip découpées ​ ​===== +===== Cas particulier : les zip découpés ​ ​===== 
-Quelques fois les archives zip sont découpées ​comme suit archive.z01archive.z02, ..., archive.zip+Il est possible de créer des archives zip éclatées en plusieurs fichiers grace à l'​option **-s** (**s** ​comme "​split"​). L’intérêt est de pouvoir les transférer séparément (avant de les rassembler) sans souffrir de limitations de taille (des mails, des clés USB ...). 
 + 
 +Pour créer des archives découpées ​: 
 +  zip -s taille_max votre_archive fichier.origine 
 +Les tailles maxi peuvent être exprimées en **k** (kilo-octets)en **m** (mégaoctets),​ en **g** (gigaoctets) ou en **t** (teraoctets)La taille minimale est de 64k. Le fichier "​destination"​ n'a pas besoin qu'on précise l'​extension **.zip**mais ce n'est pas interdit. 
 + 
 +Exemple pour un film de 299 mégaoctets appelé **film.mp4** qu'on veut couper en morceaux de 100 mégaoctets maxLes fichiers de destination s'​appelleront **xx** ​ : 
 +  zip -s 100m xx film.mp4 
 + 
 +On aura dans cet exemple 3 fichiers zippés : **xx.z01xx.z02, xx.zip**. \\ 
 +Bien sur, plutôt qu'un gros fichier, on peut indiquer un répertoire (et en ajoutant l'​option **-r** on peut archiver aussi ses sous répertoires),​ ou un ensemble de fichiers ... Les autres options de création sont compatibles avec **-s**.
  
-Pour gagner du temps à la décompression / extraction, on peut assembler ​ces fichiers ​dans une seule archivepuis extraire cette dernière ​+Aucun de ces fichiers "​splités"​ ne peut être décompressé tel que. Ils doivent d'​abord être rassemblés en un seul .zip (normalement après leur transfert au détail). ​Pour cet assemblage (après réception), on utilise la commande **cat** (concaténer). Dans l'​exemple précédent,​ il faut assembler ​les 3 fichiers ​**xx**et on choisit d'​appeler le fichier concaténé **film.zip** ​
-<​code>​ +  cat xx.* > film.zip 
-cat archive.z* > archive_globale.zip +la commande **zip -F --out** fait la même chose que **cat** (recréer un zip complet). Parfois l'une ne fonctionne pas, on peut alors utiliser l'​autre. 
-unzip archive_globale.zip +  zip -F --out film.zip xx.zip 
-</code>+Il ne reste plus qu'à dézipper le nouveau fichier pour récupérer un fichier **film.mp4** : 
 +  ​unzip film.zip 
 +Pour gagner du temps, on peut regrouper ces 2 commandes : 
 +  cat xx.* film.zip && unzip film.zip 
 +Il arrive que le fichier zip ré-assemblé et dézippable avec la commande unzip ne le soit pas avec un clic droit "​extraire"​ dans l'​explorateur de fichier. L'​extraction en ligne de commande est alors obligatoire.
  
 +Les logiciels graphiques ne savent pas toujours utiliser la fonction "​split"​ de zip.
 =====Voir aussi===== =====Voir aussi=====
   *[[archivage]]   *[[archivage]]
   *[[:p7zip]]   *[[:p7zip]]
  
  • zip.1699193867.txt.gz
  • Dernière modification: Le 05/11/2023, 15:17
  • par 86.202.8.12