IngDiaz

Enlaces en GNU/Linux – Comando ln

¡Buen día!

Traigo un tema básico pero que muchas veces se olvida y se debe de recordar la utilidad (más si se usa pura consolita xD ). La forma más básica de cómo describir lo que es un enlace, es un acceso directo… pero realmente mencionarlo como un simple acceso directo y nada más, realmente nos quedamos demasiado cortos…

Veamos… con el comando cp se puede hacer copias de archivos, pero con ln el mismo archivo puede estar en varios lugares ocupando el mismo espacio, y esto es uno de los distintivos de los enlaces en GNU/Linux.

Ejemplo:

El archivo file1 tendrá 2 nombres: file1 y file2

ln file1 file2

El archivo file2 (enlace de file1) tiene otro enlace en la carpeta “mi_folder” llamado file3

ln file2 mi_folder/file3

Si eliminamos file1 (rm file1) los demás archivos seguirán teniendo la información original.

Tipos de enlaces

Pero, ¿Qué es un inodo? El inodo contiene las características de un archivo regular, directorio, o cualquier otro objeto que pueda contener el sistema de archivos.

Más prácticamente, digamos que es el identificador único de un archivo, directorio o cualquier otro objeto en el sistema de archivo.

 

Enlaces Duros (fuertes)

La siguiente imagen explica más gráficamente a lo que se refiere un enlace duro:

Nota: Con ls -i podemos ver el inode (identificador único de cada archivo) de los archivos.

Ejemplo de enlace duro:

echo “hola” > enlace1.txt
ln enlace1.txt enlace2.txt
ls -il

Notar el inode de los archivos.

En la primera columna vemos el inode (el mismo para ambos archivos).

 

Enlaces simbólicos (suave)

La siguiente gráfica explica lo que es un enlace simbólico:

Tomar en cuenta que el nombre del enlace simbólico no soporta rutas completas.

Debemos estar dentro del directorio en el que queremos que esté dicho enlace y luego…

ln -s enlace1.txt enlace3.txt
ls -il

Analicemos la salida…

Los bits de permisos en un enlace simbólico no se usan ( l rwxrwxrwx), sino que son determinados por los permisos del archivo apuntado.

Si el archivo apuntado es eliminado, los enlaces simbólicos permanecen, pero ya no serán válidos y carecerán de sentido.

En éste ejemplo, se puede ver que, al eliminar el archivo original (enlace1.txt) y hacemos un ls -il para listar los archivos con su inode, vemos que está en color rojo y pues… si queremos ver el contenido del archivo con cat, nos da error.

Bien, eso es todo. Espero que les sirva (a mí como recordatorio xD ). ¡Saludos!

Comentarios por Facebook

comentarios