Sophie

Sophie

distrib > Mandriva > 10.0-com > i586 > by-pkgid > 664c05250964d29fcf1d0bb310959fbc > files > 31

mandrake-doc-fr-10.0-5.1.100mdk.noarch.rpm

<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Archivage et compression de données</title><meta name="generator" content="DocBook XSL Stylesheets V1.64.0"><link rel="home" href="index.html" title="Manuel de référence"><link rel="up" href="cmdutils.html" title="Chapitre 5. Les utilitaires en ligne de commande"><link rel="previous" href="command-at.html" title="at : programmer une commande une seule fois"><link rel="next" href="command-many.html" title="Etc..."></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Archivage et compression de données</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="command-at.html">Précédent</a> </td><th width="60%" align="center">Chapitre 5. Les utilitaires en ligne de commande</th><td width="20%" align="right"> <a accesskey="n" href="command-many.html">Suivant</a></td></tr></table><hr></div><div class="sect1" lang="fr"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="command-archivers"></a>Archivage et compression de données</h2></div></div><div></div></div><div class="sect2" lang="fr"><div class="titlepage"><div><div><h3 class="title"><a name="command-tar"></a>tar : Tape ARchiver (archiveur
    sur bandes)</h3></div></div><div></div></div><p><a name="BId-cmdutils-pa104"></a><a class="indexterm" name="BId-cmdutils-it5"></a>Bien que nous ayons
	déjà vu une utilisation de <span><b class="command">tar</b></span> dans le
	chapitre <a href="install-free-software-chapter.html" title="Chapitre 12. Installation d'un logiciel libre">Chapitre 12, <i>Installation d'un logiciel libre</i></a>, nous
	n'avons pas expliqué son fonctionnement. C'est maintenant ce
	que nous nous proposons de faire. De même que <span><b class="command">find</b></span>,
	<span><b class="command">tar</b></span> est un utilitaire <span class="application">UNIX</span> de longue date, et sa
	syntaxe est un peu spéciale :</p><p><a name="BId-cmdutils-pa105"></a>
<a name="BId-cmdutils-sc14"></a></p><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen">tar [options] [fichiers...]
</pre></td></tr></table><p>
      </p><p><a name="BId-cmdutils-pa106"></a>Voici maintenant une
      liste d'options. Notez que toutes celles-ci ont une option
      longue équivalente, mais vous devrez vous référer à la page de
      manuel pour cela car elles ne sont pas listées ici.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td><th align="left">Note</th></tr><tr><td colspan="2" align="left" valign="top"><p><a name="BId-cmdutils-pa107"></a>le tiret initial
	(<tt class="literal">-</tt>) des options courtes est maintenant
	désuet pour la commande <span><b class="command">tar</b></span>, sauf après une
	option longue.</p></td></tr></table></div><div class="itemizedlist"><ul type="disc"><li><p><a name="BId-cmdutils-pa108"></a><tt class="option">c</tt> : à
               utiliser pour créer de nouvelles archives.</p></li><li><p><a name="BId-cmdutils-pa109"></a><tt class="option">x</tt> : à
utiliser pour extraire des fichiers depuis une archive
existante.</p></li><li><p><a name="BId-cmdutils-pa110"></a><tt class="option">t</tt> :
	affiche la liste des fichiers d'une archive existante.
</p></li><li><p><a name="BId-cmdutils-pa111"></a><tt class="option">v</tt> :
affichera simplement la liste des fichiers au fur et à mesure qu'ils
sont ajoutés à une archive ou extraits d'une archive ; ou, en
conjonction avec l'option <tt class="option">t</tt> ci-dessus, produira un
affichage long des fichiers au lieu d'un affichage court.</p></li><li><p><a name="BId-cmdutils-pa112"></a><tt class="option">f
&lt;fichier&gt;</tt> : pour créer une archive de nom
<tt class="option">&lt;fichier&gt;</tt>, extraire depuis l'archive
<tt class="option">&lt;fichier&gt;</tt> ou faire une liste des fichiers de
l'archive <tt class="option">&lt;fichier&gt;</tt>; si cette option n'est pas
disponible, le fichier par défaut sera <tt class="filename">/dev/rmt0</tt>,
qui est généralement le fichier spécial associé à un <a name="BId-cmdutils-gt8" href="glossary.html#term-streamer"><i class="glossterm">
<span class="foreignphrase"><i class="foreignphrase">streamer</i></span> </i></a>. Si le paramètre
<tt class="literal">fichier</tt> est un tiret (<tt class="literal">-</tt>),
l'entrée ou la sortie (selon que vous extrayez depuis une archive ou
en créez une), sera associée à l'entrée standard ou la sortie
standard.</p></li><li><p><a name="BId-cmdutils-pa113"></a><tt class="option">z</tt> : énonce
à <span><b class="command">tar</b></span> que l'archive à créer devra être compressée
avec <span><b class="command">gzip</b></span>, ou que l'archive depuis laquelle on fait
l'extraction est compressée avec <span><b class="command">gzip</b></span>.</p></li><li><p><a name="BId-cmdutils-pa114"></a><tt class="option">j</tt> : même
chose que pour <tt class="option">z</tt>, mais le programme utilisé pour la
compression est <span><b class="command">bzip2</b></span>;</p></li><li><p><a name="BId-cmdutils-pa115"></a><tt class="option">p</tt> : lors
de l'extraction des fichiers d'une archive, préserve tous les
attributs de fichiers, y compris la propriété, la dernière date
d'accès et ainsi de suite ; très utile pour les sauvegardes de
systèmes de fichiers.</p></li><li><p><a name="BId-cmdutils-pa116"></a><tt class="option">r</tt> : ajoute
la liste des fichiers donnée sur la liste de commande à une archive
existante ; notez que l'archive à laquelle vous voulez ajouter
des fichiers ne doit <span class="emphasis"><em>pas</em></span> être
compressée !</p></li><li><p><a name="BId-cmdutils-pa117"></a><tt class="option">A</tt> :
fusionne les archives données sur la ligne de commande à celle
mentionnée avec l'option <tt class="option">f</tt>. De même que pour l'option
<tt class="option">r</tt>, les archives ne doivent pas être compressées pour
que cela fonctionne.</p></li></ul></div><p><a name="BId-cmdutils-pa118"></a>Il y a en fait beaucoup, beaucoup
d'autres options. Référez-vous à la page de manuel de<span class="citerefentry"><span class="refentrytitle"><a name="BId-cmdutils-rt3"></a>tar</span>(1)</span> pour en obtenir une
liste complète (entre autres l'option <tt class="option">d</tt>, par
exemple). Maintenant, passons à la pratique ! Supposons que vous
vouliez créer une archive de toutes les images dans le répertoire
<tt class="filename">/shared/images</tt>, compressée avec
<span><b class="command">bzip2</b></span>, de nom <tt class="filename">images.tar.bz2</tt>
et située dans votre répertoire personnel.  Vous taperez
alors :</p><p><a name="BId-cmdutils-pa119"></a>
    <a name="BId-cmdutils-sc15"></a></p><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen"> #
 # Note: vous devez être dans le répertoire 
 #   contenant les fichiers de l'archive!
 #
$ cd /shared
$ tar cjf ~/images.tar.bz2 images/</pre></td></tr></table><p>
      </p><p><a name="BId-cmdutils-pa120"></a>Comme vous le constatez, nous avons
utilisé trois options ici : <tt class="option">c</tt> a indiqué à
<span><b class="command">tar</b></span> de créer une archive ; <tt class="option">j</tt> lui
énonce que nous voulons qu'elle soit compressée avec
<span><b class="command">bzip2</b></span>, et <tt class="option">f ~/images.tar.bz2</tt> lui
signale que l'archive devait être créée dans notre répertoire
personnel, avec le nom
<tt class="filename">images.tar.bz2</tt>. Maintenant, il faut peut-être
vérifier si l'archive est valide. Ceci se fera simplement en affichant
la liste de ses fichiers :</p><p><a name="BId-cmdutils-pa121"></a>
         <a name="BId-cmdutils-sc16"></a></p><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen"> #
 # Retour à notre répertoire personnel
 #
$ cd
$ tar tjvf images.tar.bz2</pre></td></tr></table><p>
      </p><p><a name="BId-cmdutils-pa122"></a>Ici, nous avons demandé à <span><b class="command">tar</b></span> d'afficher la liste
(<tt class="option">t</tt>) des fichiers de l'archive <tt class="filename">images.tar.bz2</tt>
(<tt class="option">f images.tar.bz2</tt>), en ayant averti que cette archive était
compressée avec <span><b class="command">bzip2</b></span> (<tt class="option">j</tt>), et que nous voulions
un format d'affichage long (<tt class="option">v</tt>).  Maintenant, supposons que
vous ayez effacé le répertoire des images.  Heureusement, votre
archive est intacte ! Vous voulez l'extraire de sa place originelle
dans <tt class="filename">/shared</tt>. Mais comme vous ne voulez pas casser votre
commande <span><b class="command">find</b></span> pour trouver les nouvelles images, vous
devez préserver les attributs de tous les fichiers :</p><p><a name="BId-cmdutils-pa123"></a>
         <a name="BId-cmdutils-sc17"></a></p><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen"> #
 # Rendez-vous dans le répertoire où vous voulez 
 #   extraire
 #
$ cd /shared
$ tar jxpf ~/images.tar.bz2
</pre></td></tr></table><p>
      </p><p><a name="BId-cmdutils-pa124"></a>Et voilà le travail !</p><p><a name="BId-cmdutils-pa125"></a>
Maintenant, supposons que vous vouliez seulement extraire le
répertoire <tt class="filename">images/cars</tt> de l'archive. Vous pouvez
alors taper ceci :
</p><p><a name="BId-cmdutils-pa126"></a>
         <a name="BId-cmdutils-sc18"></a></p><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen">$ tar jxf ~/images.tar.bz2 images/cars</pre></td></tr></table><p>
      </p><p><a name="BId-cmdutils-pa127"></a>Au cas où cela vous inquiéterait, il
n'y a pas de quoi ! Si vous essayez d'archiver des fichiers
spéciaux, <span><b class="command">tar</b></span> les prendra tels qu'ils sont, des
fichiers spéciaux, et n'ira pas chercher leur contenu. Donc oui, vous
pouvez mettre sans risque <tt class="filename">/dev/mem</tt> dans une
archive. La gestion des liens, d'autre part, s'accomplit aussi
correctement ; donc là non plus, pas d'inquiétude à avoir. Pour les
liens symboliques, regardez également l'option <tt class="option">h</tt> dans
la page de manuel.</p></div><div class="sect2" lang="fr"><div class="titlepage"><div><div><h3 class="title"><a name="command-bzip2"></a>bzip2 et gzip : compression de
données</h3></div></div><div></div></div><p><a name="BId-cmdutils-pa128"></a>
         <a class="indexterm" name="BId-cmdutils-it6"></a>

         <a class="indexterm" name="BId-cmdutils-it7"></a>
Vous vous souvenez que nous avons déjà parlé de ces deux programmes
quand nous avons évoqué <span><b class="command">tar</b></span>. Contrairement à <span class="application">WinZip</span>
sous <span class="application">windows</span>, l'archivage et la compression sont faits en
utilisant deux programmes séparés (<span><b class="command">tar</b></span> pour l'archivage, et les
deux programmes que nous allons maintenant présenter, <span><b class="command">bzip2</b></span> et
<span><b class="command">gzip</b></span>, pour compresser). D'autres outils de compression existent
sous <span class="application">GNU/Linux</span>, comme <span><b class="command">zip</b></span>, <span><b class="command">arj</b></span> ou <span><b class="command">rar</b></span> mais sont
rarement utilisés.</p><p><a name="BId-cmdutils-pa129"></a>À l'origine, <span><b class="command">bzip2</b></span> a été écrit en
tant que remplacement pour <span><b class="command">gzip</b></span>. Ses possibilités de
compression sont en général meilleures. Mais, d'un autre côté, il
consomme plus de mémoire. La raison pour laquelle <span><b class="command">gzip</b></span> est
encore là est qu'il est encore beaucoup plus répandu que <span><b class="command">bzip2</b></span>.
Peut-être qu'un jour <span><b class="command">bzip2</b></span> remplacera complètement <span><b class="command">gzip</b></span>
ou peut-être pas ?
</p><p><a name="BId-cmdutils-pa130"></a>Les deux commandes ont une syntaxe
    similaire :</p><p><a name="BId-cmdutils-pa131"></a>
<a name="BId-cmdutils-sc19"></a></p><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen">gzip [options] [fichier(s)]
</pre></td></tr></table><p>
      </p><p><a name="BId-cmdutils-pa132"></a>Si aucun nom de fichier n'est donné,
<span><b class="command">gzip</b></span> comme <span><b class="command">bzip2</b></span> attendra des
données sur l'entrée standard et enverra le résultat sur la sortie
standard. Les deux programmes sont donc en fait utilisables avec des
tubes. Les deux commandes ont aussi un ensemble d'options
similaires :</p><div class="itemizedlist"><ul type="disc"><li><p><a name="BId-cmdutils-pa133"></a><tt class="option">-1</tt>, ...,
               <tt class="option">-9</tt> : règle le degré de
               compression ; plus le nombre est haut, plus la
               compression sera élevée, mais mieux signifie aussi plus
               lent : on n'a rien sans rien.</p></li><li><p><a name="BId-cmdutils-pa134"></a><tt class="option">-d</tt> :
décompresse un ou des fichier(s) ; c'est l'équivalent de la
commande <span><b class="command">gunzip</b></span> ou de
<span><b class="command">bunzip2</b></span>.</p></li><li><p><a name="BId-cmdutils-pa135"></a><tt class="option">-c</tt> :
envoie le résultat de la compression/décompression des fichiers donnés
en paramètre sur la sortie standard.</p></li></ul></div><p><a name="BId-cmdutils-pa136"></a>Attention ! Par défaut, si vous
    n'utilisez pas l'option <tt class="option">-c</tt>,
    <span><b class="command">gzip</b></span> et <span><b class="command">bzip2</b></span> effaceront le
    ou les fichier(s) qu'ils ont compressés (ou décompressés). Vous
    pouvez éviter cela avec <span><b class="command">bzip2</b></span> en utilisant
    l'option <tt class="option">-k</tt>. <span><b class="command">gzip</b></span>, cependant,
    ne possède pas une telle option !</p><p><a name="BId-cmdutils-pa137"></a>
    Quelques exemples seront utiles. Supposons que vous vouliez
    compresser tous les fichiers se terminant par
    <tt class="filename">.txt</tt> dans le répertoire courant avec
    <span><b class="command">bzip2</b></span>, utilisez alors :

<a name="BId-cmdutils-sc20"></a></p><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen">$ bzip2 -9 *.txt</pre></td></tr></table><p>

    Supposons que vous vouliez partager votre archive d'images avec
    quelqu'un, mais qu'il ne dispose pas de <span><b class="command">bzip2</b></span>, mais
    uniquement de <span><b class="command">gzip</b></span>.  Nul besoin de décompresser l'archive
    et de la compresser à nouveau : décompressez-la sur la sortie
    standard, utilisez un tube, compressez depuis l'entrée standard et
    redirigez le résultat vers la nouvelle archive :

<a name="BId-cmdutils-sc21"></a></p><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen">bzip2 -dc images.tar.bz2 | gzip -9 &gt;images.tar.gz</pre></td></tr></table><p>

Et voilà le travail ! Vous pourriez d'ailleurs avoir tapé
<span><b class="command">bzcat</b></span> au lieu de <span><b class="command">bzip2 -dc</b></span>.  Il existe un
équivalent pour <span><b class="command">gzip</b></span> mais son nom est <span><b class="command">zcat</b></span>, et non pas
<span><b class="command">gzcat</b></span>. Vous disposez aussi de <span><b class="command">bzless</b></span>
(resp. <span><b class="command">zless</b></span>) si vous voulez directement visualiser des
fichiers compressés sans avoir à les décompresser avant. Comme
exercice, essayez de trouver la commande que vous auriez à taper pour
voir des fichiers sans les décompresser, et sans utiliser
<span><b class="command">bzless</b></span> ou <span><b class="command">zless</b></span>.</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="command-at.html">Précédent</a> </td><td width="20%" align="center"><a accesskey="u" href="cmdutils.html">Niveau supérieur</a></td><td width="40%" align="right"> <a accesskey="n" href="command-many.html">Suivant</a></td></tr><tr><td width="40%" align="left" valign="top">at : programmer une commande une seule fois </td><td width="20%" align="center"><a accesskey="h" href="index.html">Sommaire</a></td><td width="40%" align="right" valign="top"> Etc...</td></tr></table></div></body></html>