Introduction
Sous Linux, le format ZIP demeure une solution universelle pour regrouper, compacter et transférer des données en toute simplicité. Cet article passe en revue l’utilitaire zip et son pendant unzip, en détaillant les commutateurs essentiels en environnement de production : mise en place des paquets, traitement récursif d’arborescences, ajustement du taux de compression, extraction ciblée et exclusion sélective de fichiers via le shell.
Déploiement des paquets et création d’une première archive
Avant de manipuler des archives, il convient de s’assurer de la présence des utilitaires nécessaires sur votre distribution Ubuntu à l’aide du gestionnaire APT : apt-get update -qq && apt-get install -y zip unzip.

Afin de travailler dans un cadre isolé et propre, initialisez un répertoire d’expérimentation avec la commande mkdir -p ~/zip_demo && cd ~/zip_demo.

Générez un premier fichier texte servant d’échantillon grâce à echo "Sample text file 1" > file1.txt.

Ajoutez un second fichier témoin en exécutant echo "Sample text file 2" > file2.txt.

L’utilitaire zip rassemble plusieurs entités au sein d’une archive unique au format .zip.
La syntaxe élémentaire prend en premier argument le nom du fichier de sortie (archive.zip), suivi de la liste des éléments à y intégrer (file1.txt et file2.txt).
⚙️ [Options incontournables]
-r : Parcourt et inclut l’intégralité des sous-dossiers et fichiers de manière récursive.-e : Chiffre le contenu de l’archive en sollicitant un mot de passe à la création.-u : Met à jour l’archive existante en ne traitant que les fichiers modifiés ou récents.-m : Supprime automatiquement les fichiers sources une fois la compression terminée (déplacement).-d : Retire un fichier spécifique directement depuis l’archive sans avoir à tout décompresser.-q : Exécute l’opération en mode silencieux en masquant les messages verbeux du terminal.-0 à -9 : Règle le niveau de compression, de 0 (simple stockage sans compression) à 9 (taux maximal).

Pour inspecter la taille ainsi que les métadonnées de l’archive générée, lancez ls -lh archive.zip.

Compression récursive de répertoires et optimisation du taux (-9)
Reprenez place à la racine du dossier d’expérimentation via cd ~/zip_demo.

Construisez une arborescence représentative d’un projet réel comprenant des dossiers de sources et de journaux système : mkdir -p project/src project/logs.

Créez un composant fictif au sein du dossier applicatif à l’aide de la commande echo "console.log('App running');" > project/src/app.js.

Instanciez également un fichier de logs représentatif : echo "System initialized" > project/logs/app.log.

Lorsqu’il s’agit d’archiver un dossier complet, l’indicateur -r est obligatoire afin de descendre dans l’ensemble de la hiérarchie. La commande zip -r project.zip project intègre récursivement tous les sous-dossiers et fichiers sans omission.

Pour réduire au maximum l’espace disque consommé par l’archive, combinez l’option récursive avec le drapeau d’optimisation maximale -9 : zip -9 -r project_max.zip project. Bien que ce traitement demande davantage de cycles processeur, il offre le volume final le plus compact.

Comparez l’empreinte disque obtenue entre la méthode standard project.zip et l’archive hautement compressée project_max.zip en exécutant ls -lh project*.zip.

Inspection du contenu sans décompression (-l) et extraction ciblée (-d)
Assurez-vous d’être positionné dans l’espace de démonstration : cd ~/zip_demo.

L’utilitaire unzip muni du paramètre -l permet d’auditer l’arborescence interne, les tailles de fichiers et les dates sans pour autant extraire le moindre octet sur le disque dur : unzip -l project.zip.

Préparez un répertoire d’accueil dédié à la décompression : mkdir -p ~/zip_demo/extracted.

Afin d’éviter d’éparpiller les fichiers dans le dossier de travail courant, utilisez le commutateur -d pour rediriger l’extraction : unzip project.zip -d ~/zip_demo/extracted. Les fichiers et répertoires sont ainsi restitués fidèlement dans l’emplacement ciblé.

Validez la structure arborescente restaurée en déployant un listing récursif via ls -R ~/zip_demo/extracted.

Exclusion sélective de fichiers (-x) et archivage sécurisé
Repositionnez-vous dans le répertoire de travail principal : cd ~/zip_demo.

Dans un scénario de packaging, ignorer certains fichiers temporaires ou volumineux s’avère fréquent. Grâce au paramètre -x, vous pouvez appliquer un filtre d’exclusion (par exemple "*.log") lors de la création de l’archive : zip -r project_no_logs.zip project -x "*.log".

Passez en revue le contenu de project_no_logs.zip via unzip -l project_no_logs.zip pour certifier que le journal app.log a bien été écarté de l’archive.

Pour protéger des données sensibles lors d’un transfert, zip propose le commutateur -P permettant d’affecter un mot de passe directement en ligne de commande : zip -P SecurePass123! -r project_encrypted.zip project/src. Les sources se retrouvent ainsi chiffrées au sein du package résultant.

Listez enfin l’ensemble des archives générées et comparez leurs caractéristiques avec ls -lh project_*.zip.

Ce tour d’horizon des commandes zip et unzip sous Ubuntu vous offre les bases nécessaires pour gérer vos flux d’archivage au quotidien. En intégrant ces options dans vos routines terminal et vos scripts Bash, vous gagnerez en rigueur et en rapidité dans l’administration de vos serveurs Linux.