tuteurs.ens.fr/unix/archives.tml

449 lines
12 KiB
Text
Raw Normal View History

<?xml version="1.0" encoding="UTF-8"?>
<!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>
<p>
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.
</p>
<h2>Introduction</h2>
<h3>Qu'est-ce que compresser/archiver ?</h3>
<p>
<strong>Compresser</strong> 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.</p>
<div class="attention"> <strong>Remarque terminologique</strong> :
le mot « compresser » n'existe pas en bon français, car c'est
un anglicisme conçu à partir du verbe <em>compress</em> 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. </div>
<p>
Le but de l'<strong>archivage</strong> 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.
</p>
<p>
On peut compresser des fichiers archivés, et archiver des fichiers
compressés.
</p>
<p>
Dans les deux cas, le fichier est d'abord <em>codé</em> par un programme
(de compression ou d'archive). Mais pour utiliser des fichiers (par
exemple pour les lire ou les modifier), il faut les
<em>décoder</em>. Cette page vous apprendra donc comment
<strong>compresser et décompresser, archiver et désarchiver</strong> des
fichiers.
</p>
<h3>Pourquoi compresser/archiver ?</h3>
<p>
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 <a href="place_disque.html">page des tuteurs consacrée à
l'espace disque</a> pour plus d'informations.
</p>
<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>
<p>
Pour des raisons historiques, <code>gzip</code> est encore le plus
utilisé des formats de compression, quand bien même il n'est pas le plus
puissant.
</p>
<h4>Lire des fichiers compressés avec <code>gzip</code></h4>
<p>
La grande majorité des programmes est incapable de lire directement des
fichiers compressés avec <code>gzip</code> : il faut préalablement
les décompresser. Il y a cependant des exceptions notables : </p>
<ul>
<li> la commande <strong><code>zcat</code></strong> équivaut à la
commande <code>cat</code>, mais pour des fichiers compressés avec
<code>gzip</code> ;</li>
<li> la commande <strong><code>less</code></strong> détecte et
décompresse automatiquement les fichiers compressés avec
<code>gzip</code> (ce qui n'est pas le cas de la commande
<code>more</code>) ;</li>
<li> la commande <strong><code>gv</code></strong> (Ghostview) décode
automatiquement les fichiers compressés avec <code>gzip</code> ;
vous pouvez donc sans problème compresser vos fichiers PostScript ou
PDF, car vous pourrez les lire sans avoir à les décompresser
préalablement.</li>
</ul>
<h4>Synopsis de <code>gzip</code></h4>
<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 &gt; 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 gzip, mais plus puissant. Il est libre et fondé sur un algorithme
libre, lui aussi.
</p>
<h4>Lire des fichiers compressés avec <code>bzip2</code></h4>
<p>
Comme pour <code>gzip</code>, la grande majorité des programmes est
incapable de lire directement des fichiers compressés avec
<code>bzip2</code>, à quelques exceptions près :</p>
<ul>
<li> la commande <strong><code>bzcat2</code></strong> équivaut à la
commande <code>cat</code>, mais pour des fichiers compressés avec
<code>bzip2</code> ;</li>
<li> la commande <strong><code>less</code></strong> détecte et
décompresse automatiquement les fichiers compressés avec
<code>bzip2</code> (ce qui n'est pas le cas de la commande
<code>more</code>) ;</li>
<li> la commande <strong><code>gv</code></strong> (Ghostview) décode
automatiquement les fichiers compressés avec <code>bzip2</code> ;
vous pouvez donc sans problème compresser vos fichiers PostScript ou
PDF, car vous pourrez les lire sans avoir à les décompresser
préalablement. </li>
</ul>
<h4>Synopsis de <code>bzip2</code></h4>
<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 &gt; 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>
<h4>Synopsis de <code>tar</code></h4>
<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>
<h4>Utiliser <code>tar</code> avec <code>gzip</code></h4>
<p>
<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 <strong>de compression et d'archivage</strong>
(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>
<p>
<strong>Remarque</strong> : 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 <code>gzip</code> ni
<code>tar</code>, mais le format <code>tar.gz</code> ou <code>tgz</code>
(c'est-à-dire une archive <code>tar</code> compressée avec
<code>gzip</code>).
</p>
<h4>Synopsis de <code>zip</code></h4>
<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>
<h4>Synopsis de <code>jar</code></h4>
<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.</p>
<p> 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
<code>gzip</code>), ni dans le monde Windows (qui préfère
<code>zip</code>). Il est donc fortement déconseillé d'utiliser ce
format pour compresser des fichiers.
</p>
<h4>Synopsis de <code>arj</code></h4>
<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
2011-07-09 21:34:52 +02:00
(extension : .lhz). LHa est principalement utilisé sous DOS. C'est un
2012-02-18 02:13:18 +01:00
outil puissant. LHa n'est plus vraiment utilisé aujourd'hui.
</p>
<h4>Synopsis de <code>LHa</code></h4>
<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
2012-02-18 02:13:18 +01:00
et 80%. ZOO n'est plus vraiment utilisé aujourd'hui.
</p>
<h4>Synopsis de <code>ZOO</code></h4>
<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>
<div class="metainformation">
Auteur : Émilia Robin, Marie-Lan Nguyen, Baptiste Mélès.
<date value="from git" />
</div>
</body>
</html>