Algoritmos y Estructuras de Datos Herramientas Lenguaje de programación
!Prog C/C++ Rust
Linux Matemáticas
Mates Discretas
Programación Orientada a Objetos Sistemas Operativos

Archivos de link


[words: 370] [reading time: 2min] [size: 4851 bytes]

Los archivos link en Linux son muy útiles e interesantes: puedes tener el mismo archivo en distintas direcciones.

Los archivos de links son una manera de crear un atajo a otro archivo, de tal forma que estamos creando un pseudo-archivo que refiere al original.

Voy a usar el ejemplo que dan en Linux.com: Imaginemos que tenemos una carpeta cualquiera en un USB (/media/usb/music) y creamos un archivo de link a este USB en nuestro usuario (~/music). Si abres el link, estarás en ~/music, no te redirigirá a /media/usb/music. Pero si haces algunos cambios ahí, estos se reflejarán automáticamente en el original.

Se pueden usar en los siguientes ámbitos:

Tipos de links

Los hard links solo se pueden usar con archivos (no directorios) que estén en tu mismo dispositivo (ni USBs, otros discos, etc). Incluso si se borra el original, el enlace seguirá siendo válido. En lo que a Linux le respecta, ambos archivos son el mismo, porque tienen los mismos inodos.

Los enlaces simbólicos sí que pueden referirse a directorios de otros dispositivos, pero en el caso de eliminar el original aparecerán como rotos. A diferencia de los hard links, estos sí tiene su propio inodo.

Creación de links

Para crear un hard link se usa simplemente el siguiente comando:

1ln ORIGINAL LINK

Un enlace simbólico también se crea con el comando ln, pero con una flag adicional:

1ln -s ORIGINAL LINK

Y se borrarían como un archivo completamente normal:

1rm LINK

¿Cómo diferenciar los dos tipos?

En realidad, solamente podrás diferenciar los soft links, porque aparecerá (tras un comando ls -l) una l indicando que es un enlace. Además de eso, después del nombre del archivo, se mostrará a que otro archivo hace referencia:

1lrwxrwxrwx 1 magno magno   26 Jan 27 17:50 soft -> originals/example-soft.txt

Por otro lado, un hard link, no podrá diferenciarse de ningún archivo normal, ya que se mostrará - indicando que es un archivo, y no aparecerá ningún indicador de donde esta el otro archivo al que hace referencia.

Puede que si que exista una forma de comprobarlo, pero yo todavía no lo he descubierto.

Más?: Usa $ man ln

Fuente

Linux.com

Anterior: Shell, Bash y Bashrc Volver a Linux Siguiente: Estructura directorios