Enlaces:

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