<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE html PUBLIC "-//ENS/Tuteurs//DTD TML 1//EN" "tuteurs://DTD/tml.dtd"> <html> <head> <title>Archiver</title> </head> <body> <h1>Archiver et compresser sous Unix</h1> <h2>Compresser et décompresser</h2> <h3><a name="gzip">Gzip et gunzip</a></h3> <p> <code>Gzip</code> (GNU zip) est un outil de compression (extension : .gz) qui a plus ou moins remplacé <code>compress</code> : il est plus puissant que <code>compress</code>, et il est fondé, lui, sur des algorithmes libres. <code>Gunzip</code> peut décompresser des fichiers compressés par <code>gzip</code>, <code>compress</code> ou <code>pack</code>. En revanche, il ne peut pas décompresser des fichiers .zip (il faut utiliser <a href="#zip"><code>unzip</code></a>). </p> <table class="tableau"> <tr> <th>Opération</th> <th>Commande</th> </tr> <tr> <td>Compresser un fichier</td> <td><code>gzip fichier</code></td> </tr> <tr> <td>Compression optimisée d'un fichier (pour fichiers > 100 Ko)</td> <td><code>gzip -9 fichier</code></td> </tr> <tr> <td>Décompresser un fichier gzippé</td> <td><code>gunzip fichier.gz</code></td> </tr> <tr> <td>Lire le contenu d'un fichier gzippé (sans le décompresser)</td> <td><code>zcat fichier.gz</code></td> </tr> </table> <h3><a name="bzip2">Bzip2 et bunzip2</a></h3> <p> 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. </p> <table class="tableau"> <tr> <th>Opération</th> <th>Commande</th> </tr> <tr> <td>Compresser un fichier</td> <td><code>bzip2 fichier</code></td> </tr> <tr> <td>Compression optimisée d'un fichier (pour fichiers > 100 Ko)</td> <td><code>bzip2 -9 fichier</code></td> </tr> <tr> <td>Décompresser un fichier gzippé</td> <td><code>bunzip2 fichier.gz</code></td> </tr> <tr> <td>Lire le contenu d'un fichier gzippé (sans le décompresser)</td> <td><code>bzcat2 fichier.gz</code></td> </tr> </table> <h2><a name="archiv">Archiver et désarchiver</a></h2> <h3><a name="tar">Archiver/désarchiver avec tar</a></h3> <p> Tar est un programme qui permet d'archiver et de désarchiver. C'est l'un des plus courants dans le monde Unix. </p> <table class="tableau"> <tr> <th>Opération</th> <th>Commande</th> </tr> <tr> <td>Créer une archive tar</td> <td><code>tar cf fichier.tar fichiers... à... archiver</code></td> </tr> <tr> <td>Voir le contenu d'une archive tar</td> <td><code>tar tf fichier.tar</code></td> </tr> <tr> <td>Désarchiver un fichier tar</td> <td><code>tar xf fichier.tar</code></td> </tr> <tr> <td>Extraire certains fichiers d'une archive tar</td> <td><code>tar xf fichier.tar les... fichiers... en... question</code></td> </tr> </table> <p> <strong>À noter</strong> : <code>tar</code> est souvent utilisé avec <code>gzip</code>. Les fichiers ainsi produits ont des extensions en .tar.gz ou ou .tgz. Pour les manipuler, on utilise les mêmes commandes que <code>tar</code> seul, en ajoutant un z à la fin des options (exemple : pour désarchiver fichier.tgz, taper : <code>tar xfz fichier.tgz</code>). </p> <h3><a name="zip">Archiver/désarchiver avec zip</a></h3> <p> 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). </p> <table class="tableau"> <tr> <th>Opération</th> <th>Commande</th> </tr> <tr> <td>Créer une archive ZIP</td> <td><code>zip fichier.zip fichiers... à... archiver</code></td> </tr> <tr> <td>Voir le contenu d'une archive ZIP</td> <td><code>unzip -l fichier.zip</code></td> </tr> <tr> <td>Désarchiver un fichier ZIP</td> <td><code>unzip fichier.zip</code></td> </tr> <tr> <td>Désarchiver un fichier ZIP dans un répertoire donné</td> <td><code>unzip -d répertoire fichier.zip</code></td> </tr> <tr> <td>Extraire tous les fichiers d'une archive ZIP, sauf certains</td> <td><code>unzip fichier.zip -x fichiers... à... ne... pas... extraire</code></td> </tr> </table> <h3><a name="jar">Archiver/désarchiver avec JAR</a></h3> <p> 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. </p> <table class="tableau"> <tr> <th>Opération</th> <th>Commande</th> </tr> <tr> <td>Créer une archive JAR</td> <td><code>jar cf fichier.jar fichiers... à... archiver</code></td> </tr> <tr> <td>Voir le contenu d'une archive JAR</td> <td><code>jar tf fichier.jar</code></td> </tr> <tr> <td>Désarchiver un fichier JAR</td> <td><code>jar xf fichier.jar</code></td> </tr> <tr> <td>Extraire certains fichiers d'une archive JAR</td> <td><code>jar xf fichier.jar les... fichiers... en... question</code></td> </tr> </table> <h3><a name="unarj">Désarchiver avec UNARJ</a></h3> <p> UNARJ sert à désarchiver les fichier en .arj. Le format .arj était très utilisé sous DOS. </p> <table class="tableau"> <tr> <th>Opération</th> <th>Commande</th> </tr> <tr> <td>Désarchiver un fichier ARJ dans le fichier courant</td> <td><code>unarj e fichier.arj</code></td> </tr> <tr> <td>Voir le contenu d'une archive ARJ</td> <td><code>unarj l fichier.arj</code></td> </tr> <tr> <td>Tester un fichier ARJ</td> <td><code>unarj t fichier.arj</code></td> </tr> <tr> <td>Désarchiver dans les répertoires prévus par l'archive ARJ</td> <td><code>unarj x fichier.arj</code></td> </tr> </table> <h3><a name="lha">Archiver/désarchiver avec LHa</a></h3> <p> 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. </p> <table class="tableau"> <tr> <th>Opération</th> <th>Commande</th> </tr> <tr> <td>Créer une archive LHa</td> <td><code>lha -a fichier.lhz fichiers... à... archiver</code></td> </tr> <tr> <td>Désarchiver un fichier LHa</td> <td><code>lha -e fichier.lhz <em>ou</em> lha x fichier.lhz</code></td> </tr> <tr> <td>Voir le contenu d'une archive LHa</td> <td><code>lha -l fichier.lhz</code></td> </tr> </table> <h3><a name="zoo">Archiver/désarchiver avec ZOO</a></h3> <p> 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%. </p> <table class="tableau"> <tr> <th>Opération</th> <th>Commande</th> </tr> <tr> <td>Créer une archive ZOO</td> <td><code>zoo -add fichier.zoo fichiers... à... archiver</code></td> </tr> <tr> <td>Désarchiver un fichier ZOO</td> <td><code>zoo -extract fichier.zoo</code></td> </tr> <tr> <td>Extraire certains fichiers d'une archive ZOO</td> <td><code>zoo -extract fichier.zoo fichiers... à... extraire</code></td> </tr> <tr> <td>Voir le contenu d'une archive ZOO</td> <td><code>zoo -list fichier.zoo</code></td> </tr> </table> <h2><a name="du">du</a></h2> <p> <strong><code><a name="du">du</a></code></strong> (<em> disk usage</em>) : indique la taille de tous les répertoires et sous-répertoires que vous avez chez vous. </p> <p> Sur certains systèmes, il peut être utile d'ajouter l'option <code>-k</code> (<em>kilobytes</em>), pour être sûr que le résultat sera en Ko et non en blocs. </p> <p> Par exemple, voici le compte de Toto (arborescence donnée dans le <a href="repertoires.html#arbre">cours sur les répertoires</a>) : </p> <pre> 64 ./geo 78 ./histoire/medievale 56 ./histoire/moderne/Bourbons 384 ./histoire/moderne/documents 440 ./histoire/moderne 518 ./histoire 582 .</pre> <p> Le <code>.</code> (point) de la dernière ligne désigne «le répertoire courant», comme <code>..</code> (point point) désigne «le répertoire père». Ici, le répertoire courant c'est le <em>home-director</em>y : Toto a 582 kilo-octets (un demi-méga octet) de données chez lui. </p> <p> <code>du -s</code>permet 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. </p> <h2>df</h2> <p> <strong><code><a name="df">df</a></code></strong> (<em> disk free</em>) : indique la place disponible sur les partitions montées. </p> <p> Comme pour <code>du</code>, sur certains systèmes il faut ajouter l'option <code>-k</code> (<em>kilobytes</em>), pour être sûr que le résultat sera en Ko et non en blocs. </p> <div class="encadre"> <p> L'explication complète de <code>df</code> 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 <a href="&url.tuteurs;docs/hublot/hublot06.html#concept">Concept : place-disque</a> (article du numéro 6 du <em>Hublot</em>, avril 2000). </p> </div> <p> <code>df</code> 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 «<code>df .</code>» pour n'afficher que les informations concernant votre promotion. </p> <pre> <span class="prompt">corvette ~ $</span> 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 </pre> <p> <strong>Comment interpréter ces informations</strong> : 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...). </p> <p> Le jour où <code>/users/94</code> 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 <code>syst</code>, <code>deprime</code>, <code>delation</code> ou <code>raleurs</code>). </p> <p> La même chose arrive avec le courrier électronique (stocké dans <code>/var/mail</code>) : 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. </p> <p> <strong>Moralité</strong> : </p> <ol> <li> Ne <strong>jamais</strong> envoyer de mails collectifs qui n'intéressent pas 5% des gens qui l'ont reçu. À la place, mettez un message dans <a href="&url.tuteurs;internet/forum/">forum</a> (contis <code>annonces</code>, <code>seminaires</code>...). </li> <li> <strong>Rangez votre courrier</strong> : la mail-box courante ne devrait pas contenir plus de 40 ou 50 mails en attente, le reste se range dans des <em>folders</em> (chemises). Consultez les cours sur le <a href="&url.tuteurs;internet/courrier/">courrier électronique</a> pour savoir comment faire. </li> <li> <strong>Faites le ménage chez vous</strong> : compressez ce qui peut l'être, ne conservez pas (quand ils sont inutiles) des fichiers <code>.dvi</code>, <code>.aux</code>, <code>.log</code>, <code>.toc</code>, <code>.ps</code> 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. <br/> 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 <code><a href="fichiers.html#rm">rm</a></code>). </li> </ol> <div class="metainformation"> Auteur : Émilia Robin, Marie-Lan Nguyen. Dernière modification le 2002-11-16. </div> </body> </html>