Compression et décompression via le Terminal sur macOS
Introduction
macOS intègre nativement de nombreux outils de compression et décompression accessibles depuis le Terminal. Cet article présente les commandes essentielles pour manipuler les formats d'archives les plus courants : ZIP (via ditto), TAR, GZIP, BZIP2, XZ, ainsi que les formats tiers comme 7z et RAR.
ZIP — Le format universel
Le format ZIP est le plus répandu et compatible avec tous les systèmes d'exploitation. Sur macOS, il est recommandé d'utiliser la commande ditto pour créer des archives ZIP, car elle préserve les attributs étendus, les resource forks et les métadonnées spécifiques à macOS (tags Finder, ACLs, etc.).
Créer une archive ZIP avec ditto (recommandé)
Compresser un fichier
ditto -c -k --sequesterRsrc fichier.txt archive.zip
Compresser un dossier
ditto -c -k --sequesterRsrc MonDossier/ archive.zip
(L'option --sequesterRsrc place les resource forks dans un dossier __MACOSX pour compatibilité)
Compresser en préservant les métadonnées macOS intégrées
ditto -c -k --keepParent MonDossier/ archive.zip
(L'option --keepParent conserve le dossier parent dans l'archive)
Extraire une archive ZIP avec ditto
Extraction dans le dossier courant
ditto -x -k archive.zip .
Extraction dans un dossier spécifique
ditto -x -k archive.zip /chemin/destination/
Options principales de ditto pour ZIP
- -c : Créer une archive
- -x : Extraire une archive
- -k : Utiliser le format PKZip (ZIP)
- --sequesterRsrc : Stocker les resource forks dans __MACOSX (compatibilité multiplateforme)
- --keepParent : Conserver le dossier parent dans l'archive
- -V : Mode verbeux
Alternative : commandes zip/unzip
Les commandes zip et unzip sont également disponibles mais ne préservent pas les métadonnées macOS. Elles restent indispensables pour certaines fonctionnalités que ditto ne propose pas.
Compresser un fichier
zip archive.zip fichier.txt
Compresser plusieurs fichiers
zip archive.zip fichier1.txt fichier2.txt fichier3.txt
Compresser un dossier (récursif)
zip -r archive.zip MonDossier/
Créer une archive ZIP protégée par mot de passe
zip -e -r archive.zip MonDossier/
(Le mot de passe sera demandé interactivement — ditto ne supporte pas le chiffrement)
Compresser avec un niveau de compression maximal
zip -9 -r archive.zip MonDossier/
(L'option -9 applique la compression maximale, -0 désactive la compression)
Exclure certains fichiers
zip -r archive.zip MonDossier/ -x "*.DS_Store" -x "__MACOSX/*"
Ajouter des fichiers à une archive existante
zip archive.zip nouveau_fichier.txt
Mettre à jour les fichiers modifiés dans une archive
zip -u archive.zip MonDossier/*
(Ajoute uniquement les fichiers nouveaux ou modifiés depuis la création de l'archive)
Supprimer un fichier d'une archive
zip -d archive.zip fichier_a_supprimer.txt
Lister le contenu sans extraire
unzip -l archive.zip
Extraire dans le dossier courant
unzip archive.zip
Extraire dans un dossier spécifique
unzip archive.zip -d /chemin/destination/
Extraire un fichier spécifique
unzip archive.zip fichier.txt
Écraser les fichiers existants sans confirmation
unzip -o archive.zip
Tester l'intégrité d'une archive
unzip -t archive.zip
TAR — L'archiveur Unix
La commande tar (Tape ARchive) regroupe plusieurs fichiers en une seule archive. Elle est souvent combinée avec des algorithmes de compression comme gzip, bzip2 ou xz.
Options principales de tar
- -c : Créer une archive
- -x : Extraire une archive
- -t : Lister le contenu
- -v : Mode verbeux (affiche les fichiers traités)
- -f : Spécifier le nom du fichier archive
- -z : Compresser/décompresser avec gzip (.tar.gz ou .tgz)
- -j : Compresser/décompresser avec bzip2 (.tar.bz2)
- -J : Compresser/décompresser avec xz (.tar.xz)
Archive TAR simple (sans compression)
Créer une archive
tar -cvf archive.tar MonDossier/
Extraire une archive
tar -xvf archive.tar
Lister le contenu
tar -tvf archive.tar
TAR.GZ / TGZ (compression gzip)
Format très répandu, bon compromis entre vitesse et taux de compression.
Créer une archive tar.gz
tar -czvf archive.tar.gz MonDossier/
Extraire une archive tar.gz
tar -xzvf archive.tar.gz
TAR.BZ2 (compression bzip2)
Meilleur taux de compression que gzip, mais plus lent.
Créer une archive tar.bz2
tar -cjvf archive.tar.bz2 MonDossier/
Extraire une archive tar.bz2
tar -xjvf archive.tar.bz2
TAR.XZ (compression xz)
Excellent taux de compression, idéal pour les archives de distribution. Plus lent à compresser.
Créer une archive tar.xz
tar -cJvf archive.tar.xz MonDossier/
Extraire une archive tar.xz
tar -xJvf archive.tar.xz
Extraire dans un dossier spécifique
tar -xzvf archive.tar.gz -C /chemin/destination/
Extraire un fichier spécifique
tar -xzvf archive.tar.gz chemin/vers/fichier.txt
GZIP — Compression de fichiers individuels
La commande gzip compresse des fichiers individuels. Par défaut, elle remplace le fichier original par sa version compressée.
Compresser un fichier
gzip fichier.txt
(Crée fichier.txt.gz et supprime fichier.txt)
Compresser en conservant l'original
gzip -k fichier.txt
Compression maximale
gzip -9 fichier.txt
Décompresser un fichier
gunzip fichier.txt.gz
Ou de manière équivalente :
gzip -d fichier.txt.gz
Afficher les informations de compression
gzip -l fichier.txt.gz
BZIP2 — Compression haute performance
bzip2 offre un meilleur taux de compression que gzip au prix d'une vitesse réduite.
Compresser un fichier
bzip2 fichier.txt
Compresser en conservant l'original
bzip2 -k fichier.txt
Décompresser un fichier
bunzip2 fichier.txt.bz2
Ou de manière équivalente :
bzip2 -d fichier.txt.bz2
XZ — Compression maximale
xz offre le meilleur taux de compression parmi les outils standards, au prix d'un temps de compression plus long.
Compresser un fichier
xz fichier.txt
Compresser en conservant l'original
xz -k fichier.txt
Compression maximale
xz -9 fichier.txt
Compression extrême (très lent)
xz -9e fichier.txt
Décompresser un fichier
unxz fichier.txt.xz
Ou de manière équivalente :
xz -d fichier.txt.xz
7-ZIP — Format haute compression (installation requise)
Le format 7z offre un excellent taux de compression. L'outil n'est pas inclus par défaut sur macOS mais s'installe facilement via Homebrew.
Installation
brew install p7zip
Créer une archive 7z
7z a archive.7z MonDossier/
Créer une archive avec mot de passe
7z a -p archive.7z MonDossier/
Compression maximale
7z a -mx=9 archive.7z MonDossier/
Extraire une archive 7z
7z x archive.7z
Extraire dans un dossier spécifique
7z x archive.7z -o/chemin/destination/
Lister le contenu
7z l archive.7z
(7z peut également extraire les formats ZIP, TAR, GZIP, BZIP2, RAR et bien d'autres)
RAR — Format propriétaire (installation requise)
Le format RAR est un format propriétaire populaire. Sur macOS, on peut extraire les archives RAR avec unrar.
Installation
brew install unrar
(Pour créer des archives RAR, installer rar : brew install rar)
Extraire une archive RAR
unrar x archive.rar
Extraire dans un dossier spécifique
unrar x archive.rar /chemin/destination/
Extraire sans conserver l'arborescence
unrar e archive.rar
Lister le contenu
unrar l archive.rar
Tester l'intégrité
unrar t archive.rar
Tableau comparatif des formats
Voici un résumé des caractéristiques de chaque format :
- ZIP : Compatibilité universelle, compression moyenne — utiliser ditto sur macOS pour préserver les métadonnées
- TAR : Archivage sans compression, préserve les permissions Unix
- GZIP (.gz) : Rapide, bonne compression, fichiers individuels uniquement
- BZIP2 (.bz2) : Meilleure compression que gzip, plus lent
- XZ (.xz) : Excellente compression, très lent à compresser
- 7Z : Très haute compression, chiffrement AES-256, multiplateforme
- RAR : Bonne compression, volumes multiples, format propriétaire
Conclusion
macOS offre nativement tous les outils nécessaires pour gérer les formats d'archives les plus courants. Pour les formats tiers comme 7z et RAR, Homebrew permet une installation simple et rapide des utilitaires requis.
Le choix du format dépend du cas d'usage : ZIP pour la compatibilité, tar.gz pour les environnements Unix, 7z pour la compression maximale, et tar.xz pour la distribution de logiciels.
↑ Haut de page