Los enlaces permiten dar a un único archivo varios nombres.
Todos los archivos son identificados por un numero de inodo.
Una carpeta es una lista de nº de inodos con sus correspondientes nombres
Hay dos tipos de enlaces: los enlaces duros y los blandos.
Los enlaces blandos (o simbólicos) son simples "puentes" a otro
archivo, por ejemplo: tenemos un archivo en /usr/games llamado banner y
cada vez que queremos ejecutarlo debemos hacer un cd "/usr/games/"
y luego "banner", en vez de hacer todo esto creamos un enlace
simbólico a /usr/games/banner de esta manera:
$ ln -s /usr/games/banner
$ ls -l
lrwxrwxrwx 1 peter peter 17 Feb 18 23:36 banner -> /usr/games/banner
De esta manera nos creara en el directorio actual un archivo llamado banner
que enlaza con el archivo /usr/games/banner.
Observa la "l" que hay a la izquierda del todo de los resultados
del ls -l, indica que es un enlace (link).
Si queremos que tenga otro nombre u otra dirección haremos:
$ ln -s /usr/games/banner /tmp/pruebas/mensaje
Entonces nos creara un archivo llamado mensaje en /tmp/pruebas que enlaza
con banner en /usr/games.
También podemos enlazar con un directorio, aunque hay que tener en cuenta
que hacemos un cd.. en el enlace volveremos no a donde apunta el enlace,
si no, a desde donde enlaza. Veámoslo en un ejemplo:
$ ln -s /usr/games juegos
$ ls -l
total 0
lrwxrwxrwx 1 peter peter 10 Feb 19 23:06 juegos -> /usr/games
$ cd juegos
$ pwd
/home/peter/juegos/juegos
$ ls
banner
$ cd ..
$ pwd
/home/peter/juegos
$ ls
juegos
Los enlaces duros son enlaces a un inodo, esto significa que mas de un
nombre puede apuntar a un archivo.
Para crear un enlace duro simplemente haremos lo siguiente:
$ ls -i
22192 archivo.original
$ ln archivo.original enlace
$ ls -i
22192 archivo.original 22192 enlace
|