<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<link REL="STYLESHEET" TYPE="text/css" TITLE="Style DILIB" HREF="../../dilib.css">
<title>Nouvelles commandes : archives et (de)compression - UNIX</title>
<style type="text/css">
Q { font-style: italic; }
TABLE { text-align: center; }
</style>
<link rel="copyright" href="http://www.inist.fr/"><link rel="author" href="http://dilib.inist.fr/membres.html"><link rel="chapter" href="caracteristiques.fre.html" title="UNIX"><link rel="chapter" href="X.fre.html" title="X Window"><link rel="chapter" href="redirPipes.fre.html" title="Rappels"><link rel="chapter" href="newCommandsUser.fre.html" title="Commandes UNIX"><link rel="chapter" href="shellVars.fre.html" title="Shell"><link rel="chapter" href="sed.fre.html" title="Sed"><link rel="chapter" href="make.fre.html" title="Make"><link rel="index" href="http://dilib.inist.fr/dilib/v04Main/IndexSite/Server/FR.resource.index.html"><link rel="top" title="Accueil de DILIB" href="http://dilib.inist.fr/dilib/v04Main/"><link rel="alternate" title="English version" href="tarzipCommands.eng.html"><link rel="up" href="index.fre.html" title="Tutorial UNIX / Shell">
<link rel="section" href="newCommandsUser.fre.html" title="Commandes utilisateur"><link rel="section" href="rightsCommands.fre.html" title="Gestion des droits"><link rel="section" href="tarzipCommands.fre.html" title="Archives, compression, décompression"><link rel="section" href="processesCommands.fre.html" title="Gestion des processus"><link rel="section" href="tpNewCommands.fre.html" title="TP">
<link rel="first" href="caracteristiques.fre.html" title="Caractéristiques d'UNIX">
<link rel="previous" href="rightsCommands.fre.html" title="Gestion des droits">
<link rel="next" href="processesCommands.fre.html" title="Gestion des processus">
<link rel="last" href="tpNewCommands.fre.html" title="Travaux Pratiques">
</head>
<body>
<h1>Autres commandes Unix</h1>
<div id="navcontainer">
<ul id="navlist">
<li><a href="caracteristiques.fre.html">UNIX</a>
</li>
<li><a href="redirPipes.fre.html">Bases</a>
</li>
<li><a>Commandes</a>
<ul id="subnavlist">
<li><a href="newCommandsUser.fre.html">Complémentaires</a></li>
<li><a href="rightsCommands.fre.html">Droits</a></li>
<li><a href="tarzipCommands.fre.html" id="subcurrent">Compression</a></li>
<li><a href="processesCommands.fre.html">Processus</a></li>
<li><a href="tpNewCommands.fre.html">TP</a></li>
</ul>
</li>
<li><a href="shellVars.fre.html">Shell</a>
</li>
<li><a href="sed.fre.html">Sed</a>
</li>
<li><a href="make.fre.html">Make</a>
</li>
</ul>
</div>
<div class="content">
<h2>Archives, compression, décompression</h2>
<ul>
<li><h4>tar</h4>
<p>
Cette commande permet de créer un fichier archive
(appelé <code>tarfile</code>) qui peut contenir des
fichiers et répertoires. Ce fichier tarfile n'est pas
compressé. Cette commande peut être utile pour
archiver un répertoire et tout ce qu'il contient en
un seul fichier.
</p>
<table bgcolor="yellow" border="1" class="commands" style="margin-left:0;">
<tr><td>tar -cvf Archives.tar Sauvegarde</td></tr>
</table>
<p>
La commande ci-dessus, avec les paramètres
<code>-cvf</code>, permet de créer une archive du
répertoire <code>Sauvegarde</code> dans le fichier
nommé <code>Archives.tar</code>. Attention à
l'ordre des deux derniers paramètres.
</p>
<table bgcolor="yellow" border="1" class="commands" style="margin-left:0;">
<tr><td>tar -xvf Archives.tar</td></tr>
</table>
<p>
La même commande <code>tar</code> avec les
paramètres <code>-xvf</code>, permet de
désarchiver le contenu du <code>tarfile</code>.
Attention au positionnement du désarchivage :
il s'opère dans le répertoire courant.
</p>
<p>
Pour connaître le détail du contenu d'un
tarfile, il faut utiliser les paramètres <code>-tvf</code>.
</p>
</li>
<li><h4>gzip</h4>
<p>
Cette commande permet de compresser un fichier afin d'en
réduire la taille, pour stockage ou
échange. Le fichier résultat est
renommé par ajout de l'extension
<code>.gz</code> :
</p>
<table bgcolor="yellow" border="1" class="commands" style="margin-left:0;">
<tr><td>gzip corpus.xml</td></tr>
</table>
<p>
Par listing du contenu du répertoire où la
compression a été réalisée, l'on
peut voir que le fichier <code>corpus.xml</code> a disparu
et a été remplacé par
<code>corpus.xml.gz</code>.
</p>
<p>
Il est possible d'obtenir la taille d'un fichier non
compressé à partir de son fichier
compressé en gzip.
</p>
<table bgcolor="yellow" border="1" class="commands" style="margin-left:0;">
<tr><td>gzip -l corpus.xml.gz</td></tr>
</table>
<p>
Quatre informations sont alors affichées à
l'écran :
</p>
<ul>
<li>la taille en octets du fichier compressé</li>
<li>la taille en octets du fichier non compressé</li>
<li>le ratio de compression</li>
<li>le nom du fichier initial, non compressé</li>
</ul>
<table bgcolor="yellow" border="1" class="commands" style="margin-left:0;">
<tr><td style="text-align:left">compressed uncompr. ratio uncompressed_name<br>77366 370713 79.1% corpus.xml</td></tr>
</table><br>
</li>
<li><h4>gunzip</h4>
<p>
Cette commande permet de décompresser un fichier
compressé en <code>.gz</code>. Sans
paramètres, le fichier est décompressé
sur disque et renommé sans l'extension
<code>.gz</code>. Attention, la place en octets prise
correspond bien au fichier décompressé. Cette
commande est équivalente à <code>gzip -d</code>.
</p>
<table bgcolor="yellow" border="1" class="commands" style="margin-left:0;">
<tr><td>gunzip corpus.xml.gz</td></tr>
</table>
<p>
La commande ci-dessus restaure le fichier
<code>corpus.xml</code>, qui remplace dans le
répertoire courant l'ancien fichier
<code>corpus.xml.gz</code> de plus petite taille.
</p>
<p>
S'il faut travailler avec un fichier compressé sans
le décompresser sur disque, il faut alors qu'il soit
seulement décompressé vers la sortie
standard. Ensuite, il suffira d'enchaîner les
commandes requises avec des pipes. Par exemple :
</p>
<table bgcolor="yellow" border="1" class="commands" style="margin-left:0;">
<tr><td>gunzip -c corpus.xml.gz | wc -l</td></tr>
</table><br>
</li>
<li><h4>gzcat ou zcat</h4>
<p>
Cette commande est équivalente à <code>gunzip
-c.</code>
</p>
<table bgcolor="yellow" border="1" class="commands" style="margin-left:0;">
<tr><td>gzcat corpus.xml.gz | wc -l</td></tr>
</table><br>
</li>
</ul>
</div>
<hr>
<address><a href="mailto:philippe.houdry@inist.fr">Philippe.Houdry@inist.fr</a></address>
</body>
</html>