← HUB ✦ Holberton School — Terminal Linux ✦

FICHIERS ZIP
DANS LE TERMINAL

Décompresse. Travaille. Répète.

C'EST QUOI UN FICHIER ZIP ?
📦 DÉFINITION RAPIDE

Un fichier .zip est une archive compressée — un seul fichier qui contient un ou plusieurs fichiers/dossiers regroupés et compressés. À Holberton, les requirements des projets sont souvent fournis en .zip à décompresser dans ton terminal.

🕹️ ANALOGIE GAMING

Un fichier ZIP c'est comme un coffre de butin dans un RPG. Tout est rangé à l'intérieur, compressé pour prendre moins de place. unzip, c'est l'action d'ouvrir le coffre et de poser chaque item dans ton inventaire (ton dossier de travail). zip, c'est remballer pour envoyer à quelqu'un.

INSTALLER LES OUTILS
⚙️ INSTALLER ZIP & UNZIP
# Vérifier si unzip est déjà installé
which unzip
# → /usr/bin/unzip   (installé ✅)
# → rien             (pas installé ❌)

# Installer sur Ubuntu / Debian (sandbox Holberton)
sudo apt-get install zip unzip

# Vérifier la version
unzip -v
zip --version
Sur les sandboxes Holberton, unzip est généralement déjà installé. Si tu reçois command not found, lance le apt-get install ci-dessus.
LE WORKFLOW HOLBERTON — PAS À PAS
🚀 RECEVOIR UN ZIP ET TRAVAILLER DESSUS
1

Télécharger le fichier zip (si depuis une URL)

# Télécharger avec wget
wget https://exemple.com/project.zip

# Ou avec curl
curl -O https://exemple.com/project.zip

# Vérifier qu'il est bien là
ls -lh *.zip
2

Regarder le contenu SANS décompresser

# Lister le contenu du zip (aperçu)
unzip -l project.zip

# Exemple de sortie :
  Length      Date    Time    Name
---------  ---------- -----   ----
      512  2024-01-15 10:30   project/main.c
      128  2024-01-15 10:30   project/main.h
       64  2024-01-15 10:30   project/Makefile
3

Décompresser le zip

# Décompresser dans le dossier courant
unzip project.zip

# Décompresser dans un dossier spécifique (recommandé ✅)
unzip project.zip -d mon_projet/

# Décompresser sans demander de confirmation (écraser)
unzip -o project.zip
4

Naviguer et travailler

# Voir ce qui a été extrait
ls -la

# Aller dans le dossier du projet
cd mon_projet/

# Lister le contenu
ls

# Et c'est parti ! Compiler, coder, travailler...
gcc -Wall -Werror -Wextra -pedantic main.c -o prog
TOUTES LES COMMANDES UNZIP
📂 DÉCOMPRESSER — TOUTES LES OPTIONS
# Décompresser un zip dans le dossier courant
unzip fichier.zip

# Décompresser dans un dossier précis (le crée si besoin)
unzip fichier.zip -d /chemin/vers/dossier/
unzip fichier.zip -d ~/holberton/projet_1/

# Lister le contenu sans extraire
unzip -l fichier.zip

# Mode silencieux (pas d'affichage des fichiers extraits)
unzip -q fichier.zip

# Écraser sans confirmation si fichiers existent déjà
unzip -o fichier.zip

# Ne PAS écraser les fichiers existants
unzip -n fichier.zip

# Extraire un seul fichier du zip
unzip fichier.zip main.c

# Extraire avec mot de passe
unzip -P motdepasse fichier.zip

# Tester l'intégrité du zip (sans extraire)
unzip -t fichier.zip
CRÉER ET COMPRESSER — ZIP
🗜️ COMPRESSER — TOUTES LES OPTIONS
# Créer un zip avec un fichier
zip archive.zip fichier.c

# Créer un zip avec plusieurs fichiers
zip archive.zip main.c main.h Makefile

# Compresser un dossier entier (-r = récursif)
zip -r archive.zip mon_dossier/

# Compresser le dossier courant
zip -r archive.zip .

# Compresser avec niveau de compression max (0=aucune, 9=max)
zip -9 -r archive.zip mon_dossier/

# Ajouter un fichier à un zip existant
zip archive.zip nouveau_fichier.c

# Supprimer un fichier d'un zip
zip -d archive.zip fichier_a_supprimer.c

# Voir le contenu d'un zip
zip -sf archive.zip
TAR.GZ & TAR — L'AUTRE FORMAT COURANT
🗃️ LES ARCHIVES TAR — TRÈS COURANT SUR LINUX

À Holberton et sur Linux en général, tu rencontreras souvent des .tar.gz, .tgz ou .tar.xz. Ce n'est pas du zip mais la logique est la même.

# ── EXTRAIRE ──────────────────────────────────────

# Extraire un .tar.gz dans le dossier courant
tar -xzf archive.tar.gz

# Extraire dans un dossier précis
tar -xzf archive.tar.gz -C mon_dossier/

# Extraire un .tar.xz (compression xz)
tar -xJf archive.tar.xz

# Extraire un .tar (sans compression)
tar -xf archive.tar

# Voir le contenu sans extraire
tar -tzf archive.tar.gz

# ── CRÉER ─────────────────────────────────────────

# Créer un .tar.gz d'un dossier
tar -czf archive.tar.gz mon_dossier/
Flag tarSignification
-xeXtraire
-cCréer une archive
-zcompression gzip (.gz)
-Jcompression xz (.xz)
-fnom du Fichier (toujours en dernier)
-tlister (lisTer le contenu)
-vmode Verbeux (affiche les fichiers)
-Cdestination (Change de dossier)
Astuce mnémo pour tar -xzf : eXtraire Zip Fichier. Pour créer : Créer Zip Fichier = tar -czf.
RECONNAITRE & CHOISIR LE BON OUTIL
🔍 QUEL OUTIL POUR QUEL FORMAT ?
ExtensionCommande pour extraireCréer
.zip unzip fichier.zip zip -r archive.zip dossier/
.tar.gz / .tgz tar -xzf fichier.tar.gz tar -czf archive.tar.gz dossier/
.tar.xz tar -xJf fichier.tar.xz tar -cJf archive.tar.xz dossier/
.tar.bz2 tar -xjf fichier.tar.bz2 tar -cjf archive.tar.bz2 dossier/
.tar tar -xf fichier.tar tar -cf archive.tar dossier/
.gz gunzip fichier.gz gzip fichier
.7z 7z x fichier.7z 7z a archive.7z dossier/
Tu ne sais pas quel format c'est ? La commande file fichier.zip te dit exactement le type réel d'un fichier, même si l'extension est fausse.
ERREURS CLASSIQUES & SOLUTIONS
🆘 PROBLÈMES FRÉQUENTS
command not found: unzip
sudo apt-get install unzip
Les fichiers s'extraient dans le mauvais dossier
# Toujours utiliser -d pour choisir la destination
unzip project.zip -d ~/holberton/mon_projet/
Le zip écrase mes fichiers existants
# -n = Ne pas écraser les fichiers existants
unzip -n project.zip
# -o = Écraser sans demander (si tu veux tout remplacer)
unzip -o project.zip
Voir où sont extraits les fichiers
# Lister d'abord sans extraire
unzip -l project.zip
# Puis extraire et voir en temps réel
unzip -v project.zip
End-of-central-directory signature not found

Le fichier est corrompu ou ce n'est pas un vrai zip. Vérifie avec file fichier.zip — c'est peut-être un .tar.gz renommé en .zip.

file fichier.zip   # révèle le vrai type
Permission denied après extraction
# Donner les droits d'exécution aux scripts
chmod +x script.sh
# Ou tous les fichiers du dossier
chmod -R 755 mon_projet/
RÉSUMÉ — TOUT EN UN COUP D'ŒIL
🗺️ LA CHECKLIST HOLBERTON COMPLÈTE
╔══════════════════════════════════════════════════════════════════╗
║  RECEVOIR UN ZIP DE REQUIREMENTS — WORKFLOW COMPLET              ║
╚══════════════════════════════════════════════════════════════════╝

# 1. Regarder ce qu'il y a dans le zip (sans extraire)
unzip -l requirements.zip

# 2. Extraire proprement dans un dossier dédié
unzip requirements.zip -d mon_projet/

# 3. Aller dans le dossier
cd mon_projet/

# 4. Vérifier le contenu
ls -la

# 5. Et travailler !

╔══════════════════════════════════════════════════════════════════╗
║  COMMANDES ESSENTIELLES EN UN COUP D'ŒIL                         ║
╚══════════════════════════════════════════════════════════════════╝

unzip fichier.zip                   # extraire ici
unzip fichier.zip -d dossier/       # extraire là-bas ✅
unzip -l fichier.zip                 # voir le contenu
unzip -o fichier.zip                 # écraser sans demander
zip -r archive.zip dossier/          # compresser un dossier
tar -xzf archive.tar.gz              # extraire un .tar.gz
tar -xzf archive.tar.gz -C dossier/ # extraire là-bas ✅
file fichier.zip                      # vrai type du fichier