<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Los vínculos simbólicos y la limitación de los vínculos duros</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="ext2fs.html" title="Capítulo 9. El sistema de archivos de Linux"><link rel="previous" href="ext2fs-special.html" title="Los archivos especiales: modo bloque y caracter"><link rel="next" href="ext2fs-attr.html" title="Los atributos de los archivos"></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">Los vínculos simbólicos y la limitación de los vínculos duros</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ext2fs-special.html">Anterior</a> </td><th width="60%" align="center">Capítulo 9. El sistema de archivos de Linux</th><td width="20%" align="right"> <a accesskey="n" href="ext2fs-attr.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="ext2fs-ln-s"></a>Los vínculos simbólicos y la limitación de los vínculos “<span class="quote">duros</span>”</h2></div></div><div></div></div><p><a name="BId-ext2fs-pa52"></a>Aquí tenemos que enfrentar una concepción comúnmente equivocada, aun entre usuarios de <span class="application">UNIX</span>, que principalmente se debe al hecho de que los vínculos tal y como los hemos visto (erróneamente llamados vínculos “<span class="quote">duros</span>”) sólo están asociados a archivos regulares (y hemos visto que este no es el caso – e incluso que los vínculos simbólicos están “<span class="quote">vinculados</span>”). Pero esto requiere que expliquemos primero qué son los vínculos simbólicos (En inglés los vínculos simbólicos se denominan “<span class="quote">softlinks</span>”, o más comúnmente “<span class="quote">symlinks</span>”).</p><p><a name="BId-ext2fs-pa53"></a> <a class="indexterm" name="BId-ext2fs-it21"></a> Los vínculos simbólicos son archivos de un tipo particular que sólo contienen una cadena de caracteres arbitraria, que puede, o no, apuntar a un nombre de archivo existente. Cuando se menciona un vínculo simbólico en la línea de comandos o en un programa, de hecho se accede al archivo al que apunta, si es que existe. Por ejemplo:</p><a name="BId-ext2fs-pl10"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="programlisting">$ echo Hola >miarchivo $ ln -s miarchivo mivinculo $ ls -il total 4 169 -rw-rw-r-- 1 reina reina 6 sep 10 21:30 miarchivo 416 lrwxrwxrwx 1 reina reina 6 sep 10 21:30 mivinculo -> miarchivo $ cat miarchivo Hola $ cat mivinculo Hola </pre></td></tr></table><p><a name="BId-ext2fs-pa54"></a>Puede ver que el tipo de archivo para <tt class="filename">mivinculo</tt> es <tt class="literal">'l'</tt>, por <span class="foreignphrase"><i class="foreignphrase">Link</i></span> (Vínculo) Los derechos de acceso para un vínculo simbólico son insignificantes: siempre serán <tt class="literal">rwxrwxrwx</tt>. También puede ver que este <span class="emphasis"><em>es</em></span> un archivo diferente de <tt class="filename">miarchivo</tt>, ya que su número de inodo es diferente. Pero se refiere al archivo <tt class="filename">miarchivo</tt> de manera simbólica, por lo tanto cuando ingresa <span><b class="command">cat mivinculo</b></span>, en realidad estará imprimiendo el contenido del archivo <tt class="filename">miarchivo</tt>. Para demostrar que un vínculo simbólico contiene una cadena de caracteres arbitraria, podemos hacer lo siguiente:</p><a name="BId-ext2fs-pl11"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="programlisting">$ ln -s "No soy un archivo existente" otrovinculo $ ls -il otrovinculo 418 lrwxrwxrwx 1 reina reina 20 sep 10 21:43 otrovinculo -> No soy un archivo existente $ cat otrovinculo cat: otrovinculo: No existe el fichero o el directorio $</pre></td></tr></table><p><a name="BId-ext2fs-pa55"></a><a class="indexterm" name="BId-ext2fs-it22"></a>Pero los vínculos simbólicos existen porque superan varias de las limitaciones de los vínculos normales (“<span class="quote">duros</span>”):</p><div class="itemizedlist"><ul type="disc"><li><p><a name="BId-ext2fs-pa56"></a>no se puede crear un vínculo a un inodo en un directorio que está en un sistema de archivos diferente a dicho inodo. La razón es simple: el contador de vínculos se almacena en el inodo en sí mismo, y los inodos no pueden compartirse entre los sistemas de archivos. Los vínculos simbólicos sí lo permiten;</p></li><li><p><a name="BId-ext2fs-pa57"></a>no se pueden vincular dos directorios para evitar crear ciclos en el sistema de archivos. Pero Usted puede hacer que un vínculo simbólico apunte a un directorio y usarlo como si realmente fuera un directorio.</p></li></ul></div><p><a name="BId-ext2fs-pa58"></a>Por lo tanto los vínculos simbólicos son muy útiles en muchas circunstancias, y muy a menudo, la gente tiende a usarlos para vincular archivos entre sí, incluso cuando podría haberse usado un vínculo normal. No obstante, una ventaja de los vínculos normales es que Usted no pierde el archivo si borra el “<span class="quote">original</span>”.</p><p><a name="BId-ext2fs-pa59"></a>Finalmente, si ha observado atentamente, sabrá que el tamaño de un vínculo simbólico es simplemente el tamaño de la cadena de caracteres.</p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ext2fs-special.html">Anterior</a> </td><td width="20%" align="center"><a accesskey="u" href="ext2fs.html">Subir</a></td><td width="40%" align="right"> <a accesskey="n" href="ext2fs-attr.html">Siguiente</a></td></tr><tr><td width="40%" align="left" valign="top">Los archivos especiales: modo bloque y caracter </td><td width="20%" align="center"><a accesskey="h" href="index.html">Inicio</a></td><td width="40%" align="right" valign="top"> Los atributos de los archivos</td></tr></table></div></body></html>