448 lines
12 KiB
XML
448 lines
12 KiB
XML
<?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 > 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 > 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
|
||
(extension : .lhz). LHa est principalement utilisé sous DOS. C'est un
|
||
outil puissant.
|
||
</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
|
||
et 80%.
|
||
</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>
|