<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Archivado y compresión de datos</title><meta name="generator" content="DocBook XSL Stylesheets V1.64.0"><link rel="home" href="index.html" title="Guía de Referencia"><link rel="up" href="cmdutils.html" title="Capítulo 5. Los utilitarios de la línea de comandos"><link rel="previous" href="command-sheduling.html" title="Programar la ejecución de comandos"><link rel="next" href="command-many.html" title="Mucho, mucho más..."></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">Archivado y compresión de datos</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="command-sheduling.html">Anterior</a> </td><th width="60%" align="center">Capítulo 5. Los utilitarios de la línea de comandos</th><td width="20%" align="right"> <a accesskey="n" href="command-many.html">Siguiente</a></td></tr></table><hr></div><div class="sect1" lang="es"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="command-archivers"></a>Archivado y compresión de datos</h2></div></div><div></div></div><div class="sect2" lang="es"><div class="titlepage"><div><div><h3 class="title"><a name="command-tar"></a>tar: Tape ARchiver (Archivador de cinta)</h3></div></div><div></div></div><p><a name="BId-cmdutils-pa104"></a><a class="indexterm" name="BId-cmdutils-it5"></a>Aunque ya hemos visto un uso para <span><b class="command">tar</b></span> en <a href="install-free-software-chapter.html" title="Capítulo 12. Compilando e instalando software libre">Capítulo 12, <i>Compilando e instalando software libre</i></a>, no hemos explicado como funciona, lo cual haremos en esta sección. Al igual que <span><b class="command">find</b></span>, <span><b class="command">tar</b></span> es un utilitario <span class="application">UNIX</span> de larga data, y como tal, su sintaxis es un poco especial. La sintaxis es:</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 [opciones] [archivos ...]</pre></td></tr></table><p><a name="BId-cmdutils-pa106"></a>Aquí tiene una lista de algunas opciones. Note que todas tienen una opción larga equivalente, pero para esto deberá consultar la página Man ya que no se indicarán aquí.</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">Nota</th></tr><tr><td colspan="2" align="left" valign="top"><p><a name="BId-cmdutils-pa107"></a>El guión inicial (<tt class="literal">-</tt>) de las opciones cortas ahora es obsoleto para el comando <span><b class="command">tar</b></span>, excepto después de una opción larga.</p></td></tr></table></div><div class="itemizedlist"><ul type="disc"><li><p><a name="BId-cmdutils-pa108"></a><tt class="option">c</tt>: Esta opción se usa para crear archivadores nuevos.</p></li><li><p><a name="BId-cmdutils-pa109"></a><tt class="option">x</tt>: Esta opción se usa para extraer los archivos de un archivador existente.</p></li><li><p><a name="BId-cmdutils-pa110"></a><tt class="option">t</tt>: Listar los archivos de un archivador existente.</p></li><li><p><a name="BId-cmdutils-pa111"></a><tt class="option">v</tt>: Esto simplemente listará los archivos mientras se agregan o se extraen de un archivador, o, en conjunción con la opción <tt class="option">t</tt> (ver arriba), imprime un listado largo de archivo en vez de uno corto.</p></li><li><p><a name="BId-cmdutils-pa112"></a><tt class="option">f <archivo></tt>: Crear un archivador de nombre <tt class="option"><archivo></tt>, extraer del archivador <tt class="option"><archivo></tt> o listar los archivos del archivador <tt class="option"><archivo></tt>. Si se omite este parámetro, el archivo predeterminado será <tt class="filename">/dev/rmt0</tt>, que generalmente es el archivo especial asociado con el <a name="BId-cmdutils-gt8" href="glossary.html#term-streamer"><i class="glossterm">streamer</i></a>. Si el parámetro <tt class="option">archivo</tt> es <tt class="literal">-</tt> (un guión, la entrada o la salida — dependiendo de si está creando un archivador o extrayendo de uno) será asociado con la entrada estándar o la salida estándar.</p></li><li><p><a name="BId-cmdutils-pa113"></a><tt class="option">z</tt>: Le dice a <span><b class="command">tar</b></span> que el archivador a crear debe comprimirse con <span><b class="command">gzip</b></span>, o que el archivador del que se quiere extraer está comprimido con <span><b class="command">gzip</b></span>.</p></li><li><p><a name="BId-cmdutils-pa114"></a><tt class="option">j</tt>: Igual que <tt class="option">z</tt>, pero el programa usado para la compresión es <span><b class="command">bzip2</b></span>.</p></li><li><p><a name="BId-cmdutils-pa115"></a><tt class="option">p</tt>: Cuando se extraen archivos de un archivador, preservar todos los atributos del archivo, incluyendo pertenencia, último tiempo de acceso, y así sucesivamente. Muy útil para los volcados del sistema de archivos.</p></li><li><p><a name="BId-cmdutils-pa116"></a><tt class="option">r</tt>: Agregar la lista de archivos dada en la línea de comandos a un archivador existente. Note que el archivador al cual quiere agregar archivos ¡<span class="emphasis"><em>no</em></span> debe estar comprimido!</p></li><li><p><a name="BId-cmdutils-pa117"></a><tt class="option">A</tt>: Añadir los archivadores que se dan en la línea de comandos al que se da con la opción <tt class="option">f</tt>. Al igual que con la opción <tt class="option">r</tt>, los archivadores no deben estar comprimidos para que esto funcione.</p></li></ul></div><p><a name="BId-cmdutils-pa118"></a>Hay muchas, muchas, muchas otras opciones, para una lista completa querrá consultar la página Man <span class="citerefentry"><span class="refentrytitle"><a name="BId-cmdutils-rt3"></a>tar</span>(1)</span>. Vea, por ejemplo, la opción <tt class="option">d</tt>. Ahora, sigamos con un poquito de práctica. Digamos que quiere crear un archivador con todas las imágenes en <tt class="filename">/shared/images</tt>, comprimirlo con <span><b class="command">bzip2</b></span>, que va a llamar <tt class="filename">images.tar.bz2</tt> y ubicarlo en su directorio personal. Entonces, ingresará:</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"> # # Nota: ¡debe encontrarse en el directorio desde el # que quiere archivar los archivos! # $ cd /shared $ tar cjf ~/images.tar.bz2 images/ </pre></td></tr></table><p> </p><p><a name="BId-cmdutils-pa120"></a>Como puede ver, aquí hemos usado tres opciones: <tt class="option">c</tt> le dijo a <span><b class="command">tar</b></span> que queríamos crear un archivador, <tt class="option">j</tt> le dijo que lo queríamos comprimir con <span><b class="command">bzip2</b></span>, y <tt class="option">f ~/images.tar.bz2</tt> le dijo que el archivador se iba a crear en nuestro directorio personal, con el nombre <tt class="filename">images.tar.bz2</tt>. Ahora queremos verificar si el archivador es válido. Simplemente lo podemos hacer listando sus archivos:</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"> # Volver a nuestro directorio personal # $ cd $ tar tjvf images.tar.bz2 </pre></td></tr></table><p> </p><p><a name="BId-cmdutils-pa122"></a>Aquí, le dijimos a <span><b class="command">tar</b></span> que liste (<tt class="option">t</tt>) los archivos del archivador <tt class="filename">images.tar.bz2</tt> (<tt class="option">f images.tar.bz2</tt>), le advertimos que el archivador estaba comprimido con <span><b class="command">bzip2</b></span> (<tt class="option">j</tt>), y que queríamos un listado largo (<tt class="option">v</tt>). Ahora, digamos que borró el directorio de las imágenes. Afortunadamente, su archivador está intacto, y ahora lo quiere extraer de nuevo a su lugar original, en <tt class="filename">/shared</tt>. Pero como no quiere arruinar su comando <span><b class="command">find</b></span> para las imágenes nuevas, necesita conservar todos los atributos del archivo:</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"> # # cambiar al directorio donde quiere extraer # $ cd /shared $ tar jxpf ~/images.tar.bz2 </pre></td></tr></table><p> </p><p><a name="BId-cmdutils-pa124"></a>¡Y eso es todo!</p><p><a name="BId-cmdutils-pa125"></a>Ahora, digamos que quiere extraer sólo el directorio <tt class="filename">images/cars</tt> del archivador, y nada más. Entonces puede ingresar esto:</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><a name="BId-cmdutils-pa127"></a>Si esto le preocupa, que no lo haga. Si intenta respaldar archivos especiales, <span><b class="command">tar</b></span> los tomará como lo que son, archivos especiales, y no volcará su contenido. Entonces, sí, se puede poner <tt class="filename">/dev/mem</tt> en un archivador <span><b class="keycap">:-)</b></span> ¡Ah!, y también trata correctamente a los vínculos, así que tampoco se preocupe por esto. Para los vínculos simbólicos, también mire la opción <tt class="option">h</tt> en la página Man.</p></div><div class="sect2" lang="es"><div class="titlepage"><div><div><h3 class="title"><a name="command-bzip2"></a>bzip2 y gzip: Programas de compresión de datos</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>Puede ver que ya hemos hablado de estos dos programas cuando tratábamos con <span><b class="command">tar</b></span>. A diferencia de <span class="application">WinZip</span> bajo <span class="application">Windows</span>, el archivador y la compresión se hacen usando dos utilitarios separados – <span><b class="command">tar</b></span> para el archivador, y los dos programas que presentaremos ahora para la compresión de datos: <span><b class="command">bzip2</b></span> y <span><b class="command">gzip</b></span>. También existen otros utilitarios de compresión para <span class="application">GNU/Linux</span> tales como <span><b class="command">zip</b></span>, <span><b class="command">arj</b></span> o <span><b class="command">rar</b></span> (pero no se usan con frecuencia).</p><p><a name="BId-cmdutils-pa129"></a>Al principio, <span><b class="command">bzip2</b></span> había sido escrito como un reemplazo de <span><b class="command">gzip</b></span>. Sus relaciones de compresión generalmente son mejores, pero por otra parte, toma más memoria. La razón por la cual todavía está aquí <span><b class="command">gzip</b></span> es que todavía es más usado que <span><b class="command">bzip2</b></span>.</p><p><a name="BId-cmdutils-pa130"></a>Ambos comandos tienen una sintaxis similar:</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 [opciones] [archivo(s)]</pre></td></tr></table><p><a name="BId-cmdutils-pa132"></a>Si no se especifica un nombre de archivo, tanto <span><b class="command">gzip</b></span> como <span><b class="command">bzip2</b></span> esperarán datos de la entrada estándar y enviarán los resultados a la salida estándar. Por lo tanto, puede usar ambos programas en tuberías. También ambos programas tienen un conjunto de opciones en común:</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>: Configuran la relación de compresión. A mayor número, mejor compresión, pero mejor también significa más lenta: “<span class="quote">dar para recibir</span>”.</p></li><li><p><a name="BId-cmdutils-pa134"></a><tt class="option">-d</tt>: Descomprimir el(los) archivo(s). Esto es equivalente a usar <span><b class="command">gunzip</b></span> o <span><b class="command">bunzip2</b></span>.</p></li><li><p><a name="BId-cmdutils-pa135"></a><tt class="option">-c</tt>: Volcar el resultado de la compresión/descompresión de los archivos pasados como parámetros a la salida estándar.</p></li></ul></div><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Warning"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Warning]" src="images/warning.png"></td><th align="left">Aviso</th></tr><tr><td colspan="2" align="left" valign="top"><p><a name="BId-cmdutils-pa136"></a>Predeterminadamente, tanto <span><b class="command">gzip</b></span> como <span><b class="command">bzip2</b></span> borran el o los archivos que han comprimido (o descomprimido) si no usa la opción <tt class="option">-c</tt>. Con <span><b class="command">bzip2</b></span> lo puede evitar usando la opción <tt class="option">-k</tt> pero, <span><b class="command">gzip</b></span> ¡no tiene tal opción!</p></td></tr></table></div><p><a name="BId-cmdutils-pa137"></a>Ahora, algunos ejemplos. Digamos que quiere comprimir todos los archivos que terminan con <tt class="literal">.txt</tt> en el directorio corriente usando <span><b class="command">bzip2</b></span>, entonces usará: <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> Digamos que quiere compartir su archivado de imágenes con alguien, pero dicha persona no tiene <span><b class="command">bzip2</b></span>, sólo tiene <span><b class="command">gzip</b></span>. No necesita descomprimir el archivador y volver a comprimirlo, simplemente puede descomprimirlo a la salida estándar, usar una tubería, comprimir desde la entrada estándar y volver a direccionar la salida al archivador nuevo: <a name="BId-cmdutils-sc21"></a></p><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen">bzip2 -dc imagenes.tar.bz2 | gzip -9 >imagenes.tar.gz</pre></td></tr></table><p> Y eso es todo. Podría haber ingresado <span><b class="command">bzcat</b></span> en lugar de <span><b class="command">bzip2 -dc</b></span>. Hay un equivalente para <span><b class="command">gzip</b></span> pero su nombre es <span><b class="command">zcat</b></span>, no <span class="emphasis"><em>gzcat</em></span>. También tiene <span><b class="command">bzless</b></span> (y <span><b class="command">zless</b></span>, respectivamente) si quiere ver un archivo comprimido directamente, sin tener que descomprimirlo. Como ejercicio, intente encontrar el comando que tendría que ingresar para ver los archivos comprimidos sin descomprimirlos, y sin usar <span><b class="command">bzless</b></span> o <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-sheduling.html">Anterior</a> </td><td width="20%" align="center"><a accesskey="u" href="cmdutils.html">Subir</a></td><td width="40%" align="right"> <a accesskey="n" href="command-many.html">Siguiente</a></td></tr><tr><td width="40%" align="left" valign="top">Programar la ejecución de comandos </td><td width="20%" align="center"><a accesskey="h" href="index.html">Inicio</a></td><td width="40%" align="right" valign="top"> Mucho, mucho más...</td></tr></table></div></body></html>