Archiver et compresser sous Unix

Cette page a pour but de vous apprendre à compresser et à archiver des fichiers sous Unix. Mais d'abord, commençons par expliquer chacune de ces notions.

Introduction

Qu'est-ce que compresser/archiver ?

Compresser un fichier, c'est le traiter d'une telle sorte qu'il puisse occuper moins d'espace disque. Le principe de base de la compression est d'éviter les redondances ; par exemple, au lieu d'écrire 1111111111111, il est plus économique d'écrire qu'il y a treize « 1 » à la suite.

Remarque terminologique : le mot « compresser » n'existe pas en bon français, car c'est un anglicisme conçu à partir du verbe compress qui signifie comprimer. Toutefois, l'usage de ce verbe s'étant très largement répandu, nous le suivons lâchement et tournons le dos au dictionnaire de l'Académie.

Le but de l'archivage n'est pas de réduire l'espace disque d'un fichier, mais de rassembler plusieurs fichiers en un seul, afin de faciliter leur manipulation.

On peut compresser des fichiers archivés, et archiver des fichiers compressés.

Dans les deux cas, le fichier est d'abord codé par un programme (de compression ou d'archive). Mais pour utiliser des fichiers (par exemple pour les lire ou les modifier), il faut les décoder. Cette page vous apprendra donc comment compresser et décompresser, archiver et désarchiver des fichiers.

Pourquoi compresser/archiver ?

Compresser permet d'économiser de l'espace disque ; associée à l'archivage, la compression se révèle très utile. En particulier, à l'ENS, les ressources en espace disque ne sont pas illimitées ; consultez la page des tuteurs consacrée à l'espace disque pour plus d'informations.

Compresser et décompresser

Gzip et gunzip

Gzip (GNU zip) est un outil de compression (extension : .gz) qui a plus ou moins remplacé compress : il est plus puissant que compress, et il est fondé, lui, sur des algorithmes libres. Gunzip peut décompresser des fichiers compressés par gzip, compress ou pack. En revanche, il ne peut pas décompresser des fichiers .zip (il faut utiliser unzip).

Pour des raisons historiques, gzip est encore le plus utilisé des formats de compression, quand bien même il n'est pas le plus puissant.

Lire des fichiers compressés avec gzip

La grande majorité des programmes est incapable de lire directement des fichiers compressés avec gzip : il faut préalablement les décompresser. Il y a cependant des exceptions notables :

Synopsis de gzip

Opération Commande
Compresser un fichier gzip fichier
Compression optimisée d'un fichier (pour fichiers > 100 Ko) gzip -9 fichier
Décompresser un fichier gzippé gunzip fichier.gz
Lire le contenu d'un fichier gzippé (sans le décompresser) zcat fichier.gz

Bzip2 et bunzip2

Bzip2 est un outil de compression (extension : .bz2) qui est plus lent que gzip, mais plus puissant. Il est libre et fondé sur un algorithme libre, lui aussi.

Lire des fichiers compressés avec bzip2

Comme pour gzip, la grande majorité des programmes est incapable de lire directement des fichiers compressés avec bzip2, à quelques exceptions près :

Synopsis de bzip2

Opération Commande
Compresser un fichier bzip2 fichier
Compression optimisée d'un fichier (pour fichiers > 100 Ko) bzip2 -9 fichier
Décompresser un fichier gzippé bunzip2 fichier.gz
Lire le contenu d'un fichier gzippé (sans le décompresser) bzcat2 fichier.gz

Archiver et désarchiver

Archiver/désarchiver avec tar

Tar est un programme qui permet d'archiver et de désarchiver. C'est l'un des plus courants dans le monde Unix.

Synopsis de tar

Opération Commande
Créer une archive tar tar cf fichier.tar fichiers... à... archiver
Voir le contenu d'une archive tar tar tf fichier.tar
Désarchiver un fichier tar tar xf fichier.tar
Extraire certains fichiers d'une archive tar tar xf fichier.tar les... fichiers... en... question

Utiliser tar avec gzip

tar est souvent utilisé avec gzip. Les fichiers ainsi produits ont des extensions en .tar.gz ou ou .tgz. Pour les manipuler, on utilise les mêmes commandes que tar seul, en ajoutant un z à la fin des options (exemple : pour désarchiver fichier.tgz, taper : tar xfz fichier.tgz).

Archiver/désarchiver avec zip

Zip est un outil de compression et d'archivage (extension : .zip) que vous connaissez presque forcément. Il est compatible avec ZIP de PKWARE et avec WINZIP, qui sont le standard sous DOS/Windows (mais pour autant ce n'est pas un clone). C'est le format de compression le plus pratique pour échanger des documents de UNIX à Windows ou Mac (le format de document le plus pratique étant PDF, on vous le rappelle).

Remarque : zip n'est pas seulement un programme d'archivage, car il permet d'économiser de l'espace disque en compressant les fichiers ; et ce n'est pas seulement un programme de compression, car il rassemble plusieurs fichiers en un seul. Son équivalent dans le monde Unix n'est donc ni gzip ni tar, mais le format tar.gz ou tgz (c'est-à-dire une archive tar compressée avec gzip).

Synopsis de zip

Opération Commande
Créer une archive ZIP zip fichier.zip fichiers... à... archiver
Voir le contenu d'une archive ZIP unzip -l fichier.zip
Désarchiver un fichier ZIP unzip fichier.zip
Désarchiver un fichier ZIP dans un répertoire donné unzip -d répertoire fichier.zip
Extraire tous les fichiers d'une archive ZIP, sauf certains unzip fichier.zip -x fichiers... à... ne... pas... extraire

Archiver/désarchiver avec JAR

Le format JAR (pour Java ARchive) a été introduit dans la version 1.1 du Java Development Kit. C'est un format fondé sur ZIP. Les archives JAR ont une extension .jar. Mozilla, par exemple, utilise des archives JAR.

Synopsis de jar

Opération Commande
Créer une archive JAR jar cf fichier.jar fichiers... à... archiver
Voir le contenu d'une archive JAR jar tf fichier.jar
Désarchiver un fichier JAR jar xf fichier.jar
Extraire certains fichiers d'une archive JAR jar xf fichier.jar les... fichiers... en... question

Désarchiver avec UNARJ

UNARJ sert à désarchiver les fichier en .arj.

Le format .arj était très utilisé sous DOS. Il n'est plus très utilisé aujourd'hui, ni dans le monde Unix (qui préfère gzip), ni dans le monde Windows (qui préfère zip). Il est donc fortement déconseillé d'utiliser ce format pour compresser des fichiers.

Synopsis de arj

Opération Commande
Désarchiver un fichier ARJ dans le fichier courant unarj e fichier.arj
Voir le contenu d'une archive ARJ unarj l fichier.arj
Tester un fichier ARJ unarj t fichier.arj
Désarchiver dans les répertoires prévus par l'archive ARJ unarj x fichier.arj

Archiver/désarchiver avec LHa

LHa est un outil de compression et d'archivage pour le format LHarc (extension : .lhz). LHa est principalement utilisé sous DOS. C'est un outil puissant.

Synopsis de LHa

Opération Commande
Créer une archive LHa lha -a fichier.lhz fichiers... à... archiver
Désarchiver un fichier LHa lha -e fichier.lhz ou lha x fichier.lhz
Voir le contenu d'une archive LHa lha -l fichier.lhz

Archiver/désarchiver avec ZOO

ZOO est un outil de compression et d'archivage (extension : .zoo) qui utilise un algorithme de Lempel-Ziv. Le gain d'espace varie entre 20 et 80%.

Synopsis de ZOO

Opération Commande
Créer une archive ZOO zoo -add fichier.zoo fichiers... à... archiver
Désarchiver un fichier ZOO zoo -extract fichier.zoo
Extraire certains fichiers d'une archive ZOO zoo -extract fichier.zoo fichiers... à... extraire
Voir le contenu d'une archive ZOO zoo -list fichier.zoo
Auteur : Émilia Robin, Marie-Lan Nguyen, Baptiste Mélès.