<!DOCTYPE html>
<html>
<head>
<title></title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<header>
<h1></h1>
<nav>
<ul>
<li><a href="/output/README.html">Accueil</a></li>
<li><a href="/output/unix/README.html">UNIX</a></li>
<li><a href="/output/bases/README.html">Bases</a></li>
<li><a href="/output/commandes/README.html">Commandes</a></li>
<li><a href="/output/shell/README.html">Shell</a></li>
<li><a href="/output/sed/README.html">Sed</a></li>
<li><a href="/output/make/README.html">Make</a></li>
</ul>
</nav>
</header>
<div class="content">
<h1 id="archives-compression-décompression">Archives, compression, décompression</h1>
<h2 id="tar">tar</h2>
<p>Cette commande permet de créer un fichier archive (appelé <em>tarfile</em>) qui peut contenir des fichiers et répertoires.<br />
Ce fichier <em>tarfile</em> n'est pas compressé.<br />
Cette commande peut être utile pour archiver un répertoire et tout ce qu'il contient en un seul fichier.</p>
<div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash"><span class="fu">tar</span> -cvf Archives.tar Sauvegarde</code></pre></div>
<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>
<div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash"><span class="fu">tar</span> -xvf Archives.tar</code></pre></div>
<p>La même commande <code>tar</code> avec les paramètres <code>-xvf</code>, permet de désarchiver le contenu du <em>tarfile</em>.<br />
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 <em>tarfile</em>, il faut utiliser les paramètres <code>-tvf</code>.</p>
<h2 id="gzip">gzip</h2>
<p>Cette commande permet de compresser un fichier afin d'en réduire la taille, pour stockage ou échange.<br />
Le fichier résultat est renommé par ajout de l'extension <code>.gz</code> :</p>
<div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash"><span class="fu">gzip</span> corpus.xml</code></pre></div>
<p>Par listing du contenu du répertoire où la compression a été réalisée, 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>
<div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash"><span class="fu">gzip</span> -l corpus.xml.gz</code></pre></div>
<p>Quatre informations sont alors affichées à l'écran :</p>
<ol type="1">
<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>
</ol>
<pre class="txt"><code>compressed uncompr. ratio uncompressed_name
77366 370713 79.1% corpus.xml</code></pre>
<h2 id="gunzip">gunzip</h2>
<p>Cette commande permet de décompresser un fichier compressé en <code>.gz</code>.<br />
Sans paramètres, le fichier est décompressé sur disque et renommé sans l'extension <code>.gz</code>.<br />
Attention, la place en octets prise correspond bien au fichier décompressé.<br />
Cette commande est équivalente à <code>gzip -d</code>.</p>
<div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash"><span class="fu">gunzip</span> corpus.xml.gz</code></pre></div>
<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.<br />
Ensuite, il suffira d'enchaîner les commandes requises avec des pipes.<br />
Par exemple :</p>
<div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash"><span class="fu">gunzip</span> -c corpus.xml.gz <span class="kw">|</span> <span class="fu">wc</span> -l</code></pre></div>
<h2 id="zcat">zcat</h2>
<p>Cette commande est équivalente à <code>gunzip -c</code>.</p>
<div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash"><span class="fu">zcat</span> corpus.xml.gz <span class="kw">|</span> <span class="fu">wc</span> -l</code></pre></div>
<p><a href="./droits.html">Précédent</a> - <a href="processus.html">Suivant</a></p>
</div>
<footer>
<p>© CNRS 2023</p>
</footer>
</body>
</html>