Comment utiliser la commande Zip dans Linux pour compresser des fichiers et des dossiers

Image de la fonction Zipper pour Comment utiliser la commande Zip Linux

La commande zip dans Linux est probablement la manière la plus simple et intuitive de travailler avec des fichiers ZIP en ligne de commande. Et ce n’est pas tout, le format de fichier ZIP est universel – presque tous les systèmes d’exploitation disposent d’un programme natif capable de travailler avec. Voici toutes les manières d’utiliser cette commande dans n’importe quelle ligne de commande Linux.

Table des matières

  • Comment installer Zip dans Linux
  • Commande Zip dans Linux : Syntaxe et options
  • Comment zipper un fichier dans Linux en utilisant la commande Zip
  • Comment zipper un dossier dans Linux en utilisant la commande Zip
  • Comment dézipper un fichier en utilisant la commande Zip Linux
  • Comment dézipper un dossier Linux avec Zip
  • Questions fréquemment posées

Comment installer Zip dans Linux

La dernière version de la commande Linux zip devrait être disponible dans tous les principaux gestionnaires de paquets.

Pour Debian/Ubuntu :

sudo apt install zip

Pour Arch Linux :

sudo pacman -S zip

Pour Fedora :

sudo dnf install zip

Pour Gentoo

sudo emerge --ask zip

Remarque : Avant d’installer quoi que ce soit, assurez-vous de mettre à jour votre gestionnaire de paquets d’abord pour obtenir la dernière version de la commande zip. Vous pouvez apprendre comment faire cela et plus encore avec notre feuille de triche sur les gestionnaires de paquets Linux.

Remarque : Avec zip installé, la commande unzip sera également disponible maintenant.

Commande Zip dans Linux : Syntaxe et options

Il existe une syntaxe de base pour la commande zip, qui prend juste deux paramètres : le nom du fichier ZIP de sortie et le nom du fichier d’entrée.

zip [options]  

Exemple de commande Zip dans le terminal Linux

Leurs positions sont importantes ici. Si vous les inversez, l’ordinateur se demandera pourquoi vous essayez de créer un “file-to-archive.jpg” à partir d’un “zip-file.zip” qui n’existe pas et renverra une erreur.

Quant à la définition des options, vous devrez travailler avec des indicateurs. Il y a 8 indicateurs que vous auriez régulièrement besoin pour un usage normal :

  • -d supprimer les entrées archivées sélectionnées dans le fichier ZIP.
  • -q effectuer la tâche silencieusement sans imprimer quoi que ce soit sur le terminal.
  • -T tester l’intégrité du fichier ZIP.
  • -e chiffrer le fichier.
  • -u mettre à jour le fichier ZIP en ajoutant de nouveaux fichiers dans l’archive.
  • -m déplacer le fichier dans l’archive.
  • -r ajouter récursivement des fichiers dans un dossier dans un fichier ZIP.
  • -x exclure les fichiers avec les noms de fichiers sélectionnés.
  • -i inclure uniquement les fichiers avec les noms sélectionnés.

Vous pouvez placer les indicateurs où vous le souhaitez, qu’ils soient avant la sortie, après l’entrée, entre les deux – vous pouvez même utiliser plusieurs indicateurs dispersés tout au long de la ligne dans n’importe quel ordre. Assurez-vous simplement de les taper après avoir tapé zip.

L’exception concerne -x et -i qui nécessitent une nouvelle entrée après les avoir utilisés.

Comment zipper un fichier dans Linux en utilisant la commande Zip

La manière la plus simple d’archiver des fichiers avec la commande zip est de taper zip suivi du nom du fichier ZIP et ensuite du fichier que vous essayez d’archiver ou de compresser. Les indicateurs sont optionnels, vous pouvez donc le faire comme ça pour zipper rapidement n’importe quel fichier sur Linux.

zip archive.zip text_file.txt

Commande de base pour zipper un dossier dans le terminal Linux

Vous pouvez également ajouter d’autres fichiers en les ajoutant après le premier fichier que vous essayiez d’archiver. Et si l’un d’eux a des espaces dans son nom, vous pouvez les entourer de guillemets.

zip archive.zip "file 1.txt" "file 2.txt" "file 3.txt" "file 4.txt"

Exemple d'archivage de plusieurs fichiers dans une seule commande Zip Linux

Utilisation de l’indicateur -d

L’indicateur -d vous permet de supprimer un fichier archivé dans le fichier ZIP de la même manière que vous l’auriez ajouté.

zip -d archive.zip remove_me.jpg

Terminal Linux utilisant l'indicateur D 1

Vous pouvez également l’utiliser pour supprimer des dossiers entiers dans l’archive. Cependant, cela ne fonctionnera pas pour les fichiers en dehors du fichier ZIP (vous ne pouvez donc pas l’utiliser pour supprimer des fichiers après archivage).

Utilisation de l’indicateur -q

L’indicateur -q est destiné à s’assurer que zip ne renverra pas de message lorsqu’il effectue sa tâche.

zip -q archive.zip text_file.txt

Terminal Linux utilisant l'indicateur Q

C’est utile lorsque vous utilisez la commande zip avec un script. Mais si vous utilisez cela par vous-même, vous voudrez peut-être éviter d’utiliser l’indicateur -q car vous ne saurez pas si le processus d’archivage a réussi sans vérifier avec la commande dir ou ls.

Utilisation de l’indicateur -T

Certains fichiers Certains fichiers ZIP peuvent être corrompus pendant le téléchargement – cela arrive. Vous pouvez utiliser l’indicateur -T pour vérifier l’intégrité afin de savoir si c’est vraiment un fichier cassé ou si vous saisissez simplement le mauvais mot de passe.

zip -T archive.zip

Terminal Linux utilisant le grand indicateur T

C’est assez important lors du téléchargement de fichiers volumineux comme des images de système d’exploitation. Pour des fichiers comme ceux-ci, vous pouvez les graver avec succès sur une clé USB live et vous retrouver avec des erreurs une fois que vous exécutez le fichier image sur votre machine. Il en va de même pour les vidéos et la musique qui ont des parties coupées à des endroits aléatoires.

Utilisation de l’indicateur -u

Si vous souhaitez ajouter un nouveau fichier dans un fichier ZIP existant, vous pouvez utiliser l’indicateur -u.

zip -u archive.zip new_file.txt

Terminal Linux utilisant l'indicateur U

Vous pouvez également ajouter d’autres fichiers en les ajoutant après le premier fichier, comme si vous utilisiez la commande zip normalement pour créer une nouvelle archive ZIP.

Utilisation de l’indicateur -e

Si vous souhaitez ajouter un mot de passe, vous devez utiliser l’indicateur -e. Cette option applique uniquement le mot de passe et le chiffrement au fichier que vous ajoutez dans le fichier ZIP dans sa commande, donc les fichiers précédents resteront non chiffrés si vous utilisez cela avec l’indicateur -u.

zip -e archive.zip text_file.txt

Terminal Linux utilisant l'indicateur E avec le terminal demandant un mot de passe

La grande chose à propos des fichiers ZIP est que le processus de création de mot de passe ajoute également une couche de protection supplémentaire en plus de donner accès. Votre mot de passe fonctionne comme une signature numérique qui est utilisée pour déchiffrer une couche de chiffrement supplémentaire ajoutée dans le fichier ZIP.

Utilisation de l’indicateur -m

Enfin, l’indicateur -m supprime le fichier original après qu’il ait été archivé dans le fichier ZIP. Pensez à cela comme à l’automatisation d’une étape supplémentaire afin que vous n’ayez pas à le retirer vous-même.

zip -m archive.zip text_file.txt

Terminal Linux utilisant l'indicateur M avec avant et après dir pour montrer que le fichier a disparu

Une chose importante à retenir cependant : l’indicateur -m supprime les fichiers d’une manière qui rend impossible leur récupération sans utiliser un outil de restauration de fichiers. Assurez-vous donc de garder une sauvegarde, ou retirez simplement les choses manuellement en utilisant la commande rm à la place.

Comment zipper un dossier dans Linux en utilisant la commande Zip

Si vous utilisez la commande zip sur un dossier brut, vous vous retrouverez avec un dossier qui ne contient aucun fichier. Chaque fois que vous essayez de zipper un dossier, vous devez utiliser l’indicateur -r.

Utilisation de l’indicateur -r

L’indicateur -r, alias récursif, parcourt chaque contenu d’un dossier et de ses sous-dossiers et archive chacun d’eux dans le fichier ZIP. Il conservera également la structure actuelle de chaque sous-dossier.

zip -r archive.zip my_folder

Terminal Linux utilisant l'indicateur R

Cela fonctionne également si vous souhaitez archiver tout ce qui se trouve dans le dossier actuel. Remplacez simplement my_folder par ./ et cela changera sa cible vers tout ce qui se trouve dans le dossier actuel.

zip -r archive.zip ./

Utilisation de la commande Unzip Linux avec l'indicateur R sur tous les fichiers dans le dossier actuel

De plus, vous pouvez utiliser cela avec l’indicateur -u pour inclure des dossiers et leur contenu dans un fichier ZIP existant.

zip -r -u archive.zip another_folder

Terminal Linux utilisant l'indicateur R avec l'indicateur U

Utilisation de l’indicateur -i

L’indicateur -i vous permet de choisir un fichier spécifique que vous souhaitez inclure et exclut tout le reste dans un dossier.

zip -r archive.zip my_folder -i my_folder/a_subfolder/file1.txt

Terminal Linux utilisant l'indicateur I

En utilisant des astérisques * avec l’indicateur -i, vous pouvez sélectionner des fichiers qui partagent des noms similaires mais pourraient se terminer par quelque chose comme un numéro. Par exemple, taper *.txt fera en sorte que la commande zip inclue tous les fichiers TXT dans le dossier.

zip -r archive.zip my_folder -i "*.txt"

Terminal Linux utilisant l'indicateur I avec astérisque

Utilisation de l’indicateur -x

L’indicateur -x vous permet d’exclure uniquement certains fichiers tout en zippant un dossier entier.

zip -r archive.zip my_folder -x my_folder/dont_zip.jpg

Terminal Linux utilisant l'indicateur X

De plus, l’indicateur -x remplace l’indicateur -i lorsqu’ils sont utilisés ensemble. De cette façon, vous pouvez, par exemple, dire à zip d’inclure tous les autres fichiers du même type sauf le fichier que vous ne voulez pas qu’il zippe.

zip -r archive.zip my_folder -i "*.txt" -x my_folder/dont_zip.txt

Terminal Linux utilisant l'indicateur X et l'indicateur I ensemble

Comment dézipper un fichier en utilisant la commande Zip Linux

Le programme unzip est un programme partenaire du programme zip par défaut. Il extrait des fichiers de votre archive ZIP.

Pour utiliser ce programme, vous devez simplement taper unzip et le nom du fichier de l’archive ZIP.

unzip archive.zip

Commande de base pour dézipper Linux

En utilisant la commande unzip, vous dézippez le fichier ZIP dans le répertoire de travail actuel, peu importe d’où vient le fichier ZIP.

Pour extraire ou dézipper un fichier Linux dans un fichier ZIP afin que les autres restent non extraits, vous pouvez ajouter son nom de fichier après la partie où vous tapez l’archive.

unzip archive.zip file.txt

Dézipper sélectivement le fichier Txt

Comment dézipper un dossier Linux avec Zip

Bien que unzip extraira normalement les dossiers situés dans une archive ZIP, il peut être assez difficile de le faire extraire uniquement certains dossiers. Mais cela ne signifie pas que c’est impossible.

unzip archive.zip my_folder/a_subfolder/*

Dézipper sélectivement le contenu d'un seul dossier

Cette ligne de code extrait tout ce qui se trouve dans a_subfolder.

De plus, lorsque vous dézippez un dossier, le programme unzip crée un nouveau dossier dans le répertoire de travail actuel et y décompresse ses dossiers. Si un dossier existe avec le même nom (ou qu’une version précédente du dossier est présente), il demande s’il est acceptable de remplacer le fichier actuellement dans le dossier.

Questions fréquemment posées

Que fait la commande gzip dans Linux ?

La commande Linux gzip est un outil que vous pouvez utiliser pour stocker et compresser des fichiers dans un fichier GZ.

Le ZIP est-il meilleur que le TAR ?

D’une certaine manière, le ZIP est meilleur que le TAR car les fichiers ZIP peuvent compresser, chiffrer et protéger leur contenu. Cependant, les fichiers TAR sont destinés à combiner des fichiers en un seul fichier pour un transfert de fichiers plus rapide, tandis que les fichiers ZIP (bien qu’ils soient utilisés pour le même but) sont conçus avec ces fonctionnalités supplémentaires à l’esprit.

Le TAR est-il plus rapide que le ZIP ?

Les fichiers TAR ne compressent ni ne chiffrent leur contenu. Donc, si vous recherchez un moyen plus rapide de combiner une grande quantité de fichiers en une seule archive facile à transférer, vous constaterez des gains avec TAR par rapport à ZIP. Cependant, vous pourriez trouver plus facile de transférer un fichier ZIP plutôt qu’un fichier TAR car les fichiers ZIP ont tendance à être beaucoup plus petits que les fichiers TAR.

Crédit image : Unsplash, Captures d’écran par Terenz Jomar Dela Cruz