martes, 28 de abril de 2015

Creando enlaces duros

Ahora intentaremos crear algunos enlaces. Primero los enlaces duros. Crearemos enlaces a nuestro archivo de datos de la siguiente forma:

[me@linuxbox playground]$ ln fun fun-hard
[me@linuxbox playground]$ ln fun dir1/fun-hard
[me@linuxbox playground]$ ln fun dir2/fun-hard

Así que ahora tenemos cuatro instancias del archivo “fun”. Echemos un vistazo a nuestro directorio playground:

[me@linuxbox playground]$ ls -l
total 16
drwxrwxr-x 2 me me 4096 2008-01-14 16:17 dir1
drwxrwxr-x 2 me me 4096 2008-01-14 16:17 dir2
-rw-r--r-- 4 me me 1650 2008-01-10 16:33 fun
-rw-r--r-- 4 me me 1650 2008-01-10 16:33 fun-hard

Una cosa que notarás es que el segundo campo en el listado para fun y fun-hard, contiene en ambos un “4” que es el número de enlaces duros que existen ahora para el archivo. Recordarás que un archivo tiene siempre al menos un enlace duro porque el nombre del archivo se crea con un enlace. Entonces, ¿cómo sabemos que fun y fun-hard son, en realidad, el mismo archivo? En este caso, ls no es muy útil. Aunque podemos ver que fun y fun-hard tienen los dos el mismo tamaño (campo 5), nuestro listado no nos ofrece una forma de estar seguros. Para solucionar el problema, vamos a tener que profundizar un poco más.

Cuando pensamos en los enlaces duros, puede ayudarnos imaginar que los archivos están compuestos de dos partes: la parte de datos que alberga el contenido del archivo y la parte del nombre que contiene el nombre del archivo. Cuando creamos enlaces duros, realmente estamos creando partes de nombres adicionales que se refieren todos a la misma parte de datos. El sistema asigna una cadena de sectores del disco a lo que se llama un inodo, el cual se asocia con la parte del nombre. Cada enlace duro por lo tanto se refiere a un inodo específico que alberga el contenido del archivo.

El comando ls tiene una forma de revelar esta información. Se invoca con la opción “-i”:

[me@linuxbox playground]$ ls -li
total 16
12353539 drwxrwxr-x 2 me me 4096 2008-01-14 16:17 dir1
12353540 drwxrwxr-x 2 me me 4096 2008-01-14 16:17 dir2
12353538 -rw-r--r-- 4 me me 1650 2008-01-10 16:33 fun
12353538 -rw-r--r-- 4 me me 1650 2008-01-10 16:33 fun-hard

En esta versión de la lista, el primer campo es el número del inodo y, como podemos ver, tanto fun como fun-hard comparten el mismo número de inodo, lo que confirma que son el mismo archivo.

No hay comentarios:

Publicar un comentario