Archiver et compresser sous Unix

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).

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 gqzip, mais plus puissant. Il est libre et fondé sur un algorithme libre, lui aussi.

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.

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

À noter : 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).

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.

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.

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ée sous DOS. C'est un outil puissant.

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%.

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

du

du ( disk usage)  : indique la taille de tous les répertoires et sous-répertoires que vous avez chez vous.

Sur certains systèmes, il peut être utile d'ajouter l'option -k (kilobytes), pour être sûr que le résultat sera en Ko et non en blocs.

Par exemple, voici le compte de Toto (arborescence donnée dans le cours sur les répertoires) :

64  ./geo 
78  ./histoire/medievale 
56  ./histoire/moderne/Bourbons 
384 ./histoire/moderne/documents 
440 ./histoire/moderne 
518 ./histoire 
582 .

Le . (point) de la dernière ligne désigne «le répertoire courant», comme .. (point point) désigne «le répertoire père». Ici, le répertoire courant c'est le home-directory : Toto a 582 kilo-octets (un demi-méga octet) de données chez lui.

du -spermet de n'afficher que la dernière ligne, c'est-à-dire le total de tous les répertoire et sous-répertoires, sans tous les détails.permet de n'afficher que le total des fichiers présents sur votre compte.

df

df ( disk free) : indique la place disponible sur les partitions montées.

Comme pour du, sur certains systèmes il faut ajouter l'option -k (kilobytes), pour être sûr que le résultat sera en Ko et non en blocs.

L'explication complète de df fait appel à des notions délicates sur la façon dont les fichiers sont organisés, d'autant que nous sommes en réseau (par NFS). On n'entrera donc pas dans les détails dans ce topo. Dans un premier temps, remplacez le mot « partition » par « disque (dur) » et ça suffira largement. Si vous êtes curieux, vous pouvez aller lire Concept : place-disque (article du numéro 6 du Hublot, avril 2000).

df affiche un tableau, avec une ligne par point de montage. Les colonnes sont respectivement le système de fichiers, sa taille, la place utilisée, la place libre, la proportion d'espace utilisé, et le point de montage. Ici, nous donnons un exemple (presque) complet, mais vous pouvez aussi taper «df .» pour n'afficher que les informations concernant votre promotion.

corvette ~ $ df
Filesystem            kbytes    used   avail capacity  Mounted on

(...)
clipper:/users/91    2569479 1941899  576191    78%    /users/91
clipper:/users/92    2569479 1941899  576191    78%    /users/92
clipper:/users/94    2010959 1949327    1304   100%    /users/94
clipper:/users/95    4352742 2769111 1540104    65%    /users/95
clipper:/users/93    2056211 1532892  461633    77%    /users/93
clipper:/users/96    4351726 3752924  555285    88%    /users/96
clipper:/users/97    4352742 4105366  203849    96%    /users/97
clipper:/users/98    4352742 3796656  512559    89%    /users/98
clipper:/users/99    4351726 4232088   76121    99%    /users/99

(...)
clipper:/var/mail    3595709 1559061 2000691    44%    /var/mail

Comment interpréter ces informations : chaque promotion a une partition, ce qui vous permet de repérer facilement la votre. Le pourcentage donne le taux de remplissage. Ce jour-là, à peu près 100% de la place laissée à la promotion 1994 est prise (il reste un peu plus d'un méga-octet, soit quelques grosses images, une minute de musique, ou cinq maîtrises...).

Le jour où /users/94 est plein, la promotion 1994, toutes disciplines confondues, ne peut plus rien faire (pas de place pour enregistrer des modifications, de nouveaux fichiers, etc). Quand cela arrive, le problème est signalé dans forum (généralement dans les contis syst, deprime, delation ou raleurs).

La même chose arrive avec le courrier électronique (stocké dans /var/mail) : le jour où il n'y a plus de place, les courriers n'arrivent plus à l'École (pas de place pour les mettre), que ce soit de l'extérieur ou de façon interne à l'École.

Moralité :

  1. Ne jamais envoyer de mails collectifs qui n'intéressent pas 5% des gens qui l'ont reçu. À la place, mettez un message dans forum (contis annonces, seminaires...).
  2. Rangez votre courrier : la mail-box courante ne devrait pas contenir plus de 40 ou 50 mails en attente, le reste se range dans des folders (chemises). Consultez les cours sur le courrier électronique pour savoir comment faire.
  3. Faites le ménage chez vous : compressez ce qui peut l'être, ne conservez pas (quand ils sont inutiles) des fichiers .dvi, .aux, .log, .toc, .ps qui se recréent sans problème : un document LaTeX de 90 pages met à peine plus de 10 secondes à se recompiler entièrement. Rapellez-vous aussi que les zoulies images ou les chouettes musiques recupérées sur le Web prennent une place énorme.
    Il pourra vous arriver de recevoir un mail du «Démon mange-disque» vous signalant de gros fichiers chez vous : si ces fichiers ne sont pas indispensables ou sont facilement recréables, il faut mieux les effacer (commande rm).
Auteur : Émilia Robin, Marie-Lan Nguyen. Dernière modification le 2002-11-16.