VII. Compression

Par Hugo ETIEVANT


  1. Archiver
    1. Le programme archiveur (tar)
    2. Créer une archive
    3. Extraire les fichiers d'une archive
    4. Archive et compression automatique
    5. Contenu d'une archive
  2. Compresser
    1. Le compresseur compress
      1. Compression
      2. Décompression
    2. Le compresseur gzip et le décompresseur gunzip

Archiver

Archiver des fichiers consiste en les réunir en un seul autre fichier. Ce dernier n'est pas compressé c'est-à-dire que sa taille est égale la somme ce celle des fichiers qu'il regroupe.

Le programme archiveur tar

Pour archiver des fichiers, on utilise le programme tar. Dont les principales options sont :
- c (Create) pour créer une archive
- x (eXtract) pour extraire les fichiers d'une archive
- t (lisT) pour afficher la liste des fichiers d'une archive
- v (Verbose) pour le mode verbeux
- f (Force) pour forcer le remplacement de fichiers
- z (gZip) traite les fichiers avec gzip (compression après archivage, décompression avant extraction et décompression temporaire pour afficher la liste des fichiers). Créer une archive

Syntaxe : tar cvf fichier.tar motif

Exemple : tar cvf tpc.tar *.c

Dans l'exemple précédent, on crée une archive qui porte le nom tpc.tar qui contient tous les fichiers d'extention .c du répertoire courant.

Le motif est une expression régulière du Shell qui peut donc contenir des métacaractères.

Les fichiers archives doivent porter l'extention .tar.

Extraire les fichiers d'une archive

(Après avoir créé une archive) On remplace l'option c (create) par x (extract) pour extraire tous les fichiers d'une archive.

Syntaxe : tar xvf fichier.tar

Exemple : tar xvf tpc.tar

On peut n'extraire de l'archive que les fichiers satisfaisant un motif (encore une expression régulière).

Syntaxe : tar xvf fichier.tar motif

Exemple : tar xvf tpc.tar poly*

Dans l'exemple précédent, on extrait de l'archive tpc.tar seulement les fichiers dont le nom commence par poly.

Archive et compression automatique

Pour compresser automatiquement le fichier archive pendant sa création, on utilise l'option z (gzip).

Syntaxe : tar zcvf fichier.tar.gz motif

Exemple : tar zcvf tpc.tar.gz *.c

Et de façon similaire, pour décompresser une archive et en extraire les fichiers :

Syntaxe : tar zxvf fichier.tar.gz

Exemple : tar zxvf tpc.tar.gz

Les options v et f sont facultatives, on aurait plus écrire :
- tar c fichier.tar motif pour archiver
- tar x fichier.tar pour dé-archiver
- tar cz fichier.tar.gz motif pour archiver et compresser
- tar xz fichier.tar.gz pour décompresser et extraire.

L'ordre des options n'a pas d'importance, en revenche, celui de fichier et motif en a.

Les fichiers compressés avec gzip ont .gz pour extention.

Contenu d'une archive

Pour visualiser la liste des noms des fichiers contenus dans une archive, on utilise l'option t.

Syntaxe : tar t fichier.tar

Exemple : tar t tpc.tar

Si le fichier est compressé avec gzip, on rajoute l'option z.

Syntaxe : tar zt fichier.tar.gz

Exemple : tar zt tpc.tar.gz


Compresser

Le but de la compression est de réduire la taille des données en utilisant un algorithme. Un fichier compressé n'est plus utilisable telquel à moins de le décompresser. Les programmes de compression suivants remplacent le fichier spécifié en paramètre par un autre d'extention caractéristique du programme.

Le but du jeu est de compresser une archive .tar afin d'avoir une seule archive compressée correspondant à une multitude de fichiers originaux (au lieu d'avoir une archive compressée pour chaque fichier originaux).

Le compresseur compress

Compression

Le programme compress compresse un ou des fichiers en lui rajoutant l'extention Z. Ces options sont :
- c (Cat) pour écrire sur la sortie standart sans changer les fichiers
- f (Force) pour forcer l'opération sans demander de confirmation
- r (Recurse) pour décompresser le contenu de répertoires, c'est-à-dire remplacer tout fichier compressé par le fichier original correspondant de manière à ne pas avoir dans une archive d'autres archives qu'il faudrait encore décompresser
- v (Verbose) pour afficher le taux de compression des fichiers.

Syntaxe : compress fichier

Exemple : compress lettre.txt

L'exemple précédent remplace le fichier lettre.txt par le fichier lettre.txt.Z de plus faible taille. De plus, il affiche le taux de compression du ou des fichiers et force le remplacement des archives déjà existantes.

Exemple : compress -vf *.doc

Cet exemple compresse tous les fichiers d'extention .doc en affichant leur taux de compression respectifs et force l'écrasement d'éventuels anciennes archives de mêmes noms.

Exemple : compress tpc.tar

Cet exemple compresse le fichier archive tpc.tar et le remplace par tpc.tar.Z.

Décompression

Le programme uncompress décompresse un fichier en lui supprimant l'extention Z. Ces options sont :
- c (Cat) pour écrire sur la sortie standard (sans changer les fichiers)
- f (Force) pour forcer l'opération sans demander de confirmation
- l (List) pour afficher des informations sur les fichiers compressés.

Syntaxe : uncompress fichier.Z

Exemple : compress tpc.tar.Z

L'exemple précédent remplace le fichier tpc.tar.Z par le fichier original tpc.tar.

Le compresseur gzip et le décompresseur gunzip

Le programme gzip, plus performant que le précédant, compresse un ou plusieurs fichier(s) en lui rajoutant l'extention par défaut .gz.

Ces options sont :
- c (stdout) pour afficher le résultat de la compression sur la sortie standart sans modifier les fichiers originaux
- d (decompress) pour decompress le(s) fichier(s)
- f (force) pour forcer l'écrasement sans demander confirmation
- h (help) pour obtenir l'aide
- l (list) pour afficher des informations sur les fichiers
- L (license) pour afficher la licence d'utilisation du programme
- q (quiet) pour ne afficher les messages d'erreurs éventuels
- r (recursive) pour opérer sur les fichiers des sous-réperoires
- S .xxx (suffix) pour modifier en .xxx l'extention des fichiers compressés
- t (test) pour tester l'intégrité des fichiers compressés
- v (verbose) pour activer le mode verbeux
- V (version) pour afficher la version du programme
- [1-9] (fast) nombre entre 1 et 9 pour choisir le taux de compression (1:faible, 9:maximum).

Syntaxe : gzip fichier

Exemple : gzip tpc.tar

L'exemple précédent compresse le fichier tpc.tar en tpc.tar.gz.

Syntaxe : gzip -d fichier.gz

Exemple : gzip -d tpc.tar.gz

L'exemple précédent décompresse le fichier tpc.tar.gz en tpc.tar.

Syntaxe : gunzip fichier.gz

Exemple : gunzip tpc.tar.gz

L'exemple précédent décompresse le fichier tpc.tar.gz en tpc.tar.

Le programme gunzip possède les mêmes options que gzip.

Exemple : gzip -9rvf *.tar

L'exemple présédent compresse tous les fichiers *.tar du répertoire courant et de ses sous-réperoires (r) en degré de compression maximal (9). Il affiche aussi la liste des fichiers traités (v) et remplace automatiquemnt les fichiers *.tar.gz si jamais ils existaient déjà (f).