ERICLINUX: Enlaces de archivos

7/10/07

Enlaces de archivos

Enlaces de archivos

En ocasiones es necesario dar a un mismo archivo distintos nombres o, para mantener la integridad de los datos, se hace necesario que un mismo archivo que va a ser modificado por varias personas pueda estar representado por un nombre distinto con distintos permisos cada uno. Dada la representación que GNU/Linux le da a los archivos es posible que dos o más nombres apunten al mismo contenido en el disco rígido. Recordemos que los archivos se representan por el número de inodo en el disco y es el único identificador que el sistema tiene del archivo. Si se quiere ver el inodo que representa un archivo basta solo con agregar el modificador -i al comando ls. Existen dos tipos de enlaces: los duros y los simbólicos.

Enlaces duros o hard links

Para crear enlaces entre los archivos se utiliza el comando ln. Para dar un ejemplo, si se quisiera hacer un enlace del archivo hola el comando es

[shrek@pantano:~]$ ln hola saludo

Si ahora hacemos un listado mostrando los inodos

[shrek@pantano:~]$ ls -il
total 2
14438 -r-------- 2 shrek user 64 Apr 29 14:04 hola
14438 -r-------- 2 shrek user 64 Apr 29 14:04 saludo

Como se ve el número de nombres que los archivos tienen ahora es 2 dado que hemos creado otro nombre que es un enlace al contenido que tenía el archivo hola en el disco. Esto puede verse dado que el primer número del listado, 14438, es el número del inodo donde comienza el contenido del archivo hola. Aunque parezca que el contenido se a duplicado, esto no es así. Ambos archivos apuntan al mismo sitio. Por esto, un archivo no se borra hasta que se haya borrado el último de sus nombres. De esta forma también podemos decir que un directorio no es más que un archivo que contiene información sobre la translación enlace a inodo. También que cada directorio tiene dos enlaces duros en él: . (un enlace apuntando a si mismo) y .. (un enlace apuntando a su directorio padre). En el directorio raíz / el enlace .. siempre apunta a /.

Enlaces simbólicos o symbolic links

A diferencia con los enlaces duros, estos enlaces solo dan otro nombre a un archivo pero no hacen un enlace al nivel de inodo. Se puede hacer una comparación con los "Accesos directos" de Windows95. La orden ln -s genera un enlace simbólico.

[shrek@pantano:~]$ ln -s hola saludos
[shrek@pantano:~]$ ls -il
total 2
14438 -r-------- 1 shrek user 64 Apr 29 14:04 hola
14446 lrwxrwxrwx 1 shrek user 4 May 7 08:33 saludos -> hola
[shrek@pantano:~]$

Como se ve, el enlace nos muestra a que archivo esta apuntando. Existen diferencias entre este tipo de enlaces y los duros como que ya no están apuntando al mismo inodo. Además los bit de permisos aparecen todos encendidos dado que no son usados. Los permisos que se utilizan son los del archivo al que se esta apuntando. Si nos fijamos bien, en la primera posición de los permisos veremos una letra l. Esto nos indica que es un enlace simbólico. Otra particularidad es que se pueden crear enlaces simbólicos de archivos que no existen; pero lo mismo no es cierto para los enlaces duros. Con los enlaces simbólicos se puede saber a que archivo están apuntando, no así con los duros. Los enlaces simbólicos son ampliamente usados para las librerías compartidas.

Fuente

Atentamente Eric.

Enlaces de archivos

En ocasiones es necesario dar a un mismo archivo distintos nombres o, para mantener la integridad de los datos, se hace necesario que un mismo archivo que va a ser modificado por varias personas pueda estar representado por un nombre distinto con distintos permisos cada uno. Dada la representación que GNU/Linux le da a los archivos es posible que dos o más nombres apunten al mismo contenido en el disco rígido. Recordemos que los archivos se representan por el número de inodo en el disco y es el único identificador que el sistema tiene del archivo. Si se quiere ver el inodo que representa un archivo basta solo con agregar el modificador -i al comando ls. Existen dos tipos de enlaces: los duros y los simbólicos.

Enlaces duros o hard links

Para crear enlaces entre los archivos se utiliza el comando ln. Para dar un ejemplo, si se quisiera hacer un enlace del archivo hola el comando es

[shrek@pantano:~]$ ln hola saludo

Si ahora hacemos un listado mostrando los inodos

[shrek@pantano:~]$ ls -il
total 2
14438 -r-------- 2 shrek user 64 Apr 29 14:04 hola
14438 -r-------- 2 shrek user 64 Apr 29 14:04 saludo

Como se ve el número de nombres que los archivos tienen ahora es 2 dado que hemos creado otro nombre que es un enlace al contenido que tenía el archivo hola en el disco. Esto puede verse dado que el primer número del listado, 14438, es el número del inodo donde comienza el contenido del archivo hola. Aunque parezca que el contenido se a duplicado, esto no es así. Ambos archivos apuntan al mismo sitio. Por esto, un archivo no se borra hasta que se haya borrado el último de sus nombres. De esta forma también podemos decir que un directorio no es más que un archivo que contiene información sobre la translación enlace a inodo. También que cada directorio tiene dos enlaces duros en él: . (un enlace apuntando a si mismo) y .. (un enlace apuntando a su directorio padre). En el directorio raíz / el enlace .. siempre apunta a /.

Enlaces simbólicos o symbolic links

A diferencia con los enlaces duros, estos enlaces solo dan otro nombre a un archivo pero no hacen un enlace al nivel de inodo. Se puede hacer una comparación con los "Accesos directos" de Windows95. La orden ln -s genera un enlace simbólico.

[shrek@pantano:~]$ ln -s hola saludos
[shrek@pantano:~]$ ls -il
total 2
14438 -r-------- 1 shrek user 64 Apr 29 14:04 hola
14446 lrwxrwxrwx 1 shrek user 4 May 7 08:33 saludos -> hola
[shrek@pantano:~]$

Como se ve, el enlace nos muestra a que archivo esta apuntando. Existen diferencias entre este tipo de enlaces y los duros como que ya no están apuntando al mismo inodo. Además los bit de permisos aparecen todos encendidos dado que no son usados. Los permisos que se utilizan son los del archivo al que se esta apuntando. Si nos fijamos bien, en la primera posición de los permisos veremos una letra l. Esto nos indica que es un enlace simbólico. Otra particularidad es que se pueden crear enlaces simbólicos de archivos que no existen; pero lo mismo no es cierto para los enlaces duros. Con los enlaces simbólicos se puede saber a que archivo están apuntando, no así con los duros. Los enlaces simbólicos son ampliamente usados para las librerías compartidas.

Fuente

Atentamente Eric.

0 COMENTARIOS:

Publicar un comentario

Bienvenido a ERICLINUX.
Gracias por tu comentario.

Nota: solo los miembros de este blog pueden publicar comentarios.

Tu comentario será moderado la primera vez que lo hagas al igual que si incluyes enlaces. A partir de ahi no ser necesario si usas los mismos datos y mantienes la cordura. No se publicarán insultos, difamaciones o faltas de respeto hacia los lectores y comentaristas de este blog.