La commande ln permet de créer des liens entre fichiers. La syntaxe de ln est :
ln [options] source destination
ln supporte deux types de liens :
Les liens normaux ne peuvent être utilisés que lorsque la source et la destination sont sur le même système de fichiers.
Considérons un répertoire contenant les fichiers a et b :
-rw-rw-r-- 1 obo obo 2 Sep 14 14:16 a -rw-rw-r-- 1 obo obo 2 Sep 14 14:16 b
Pour que le fichier c soit équivalent au fichier b, faites ln c b. Le contenu du répertoire devient :
-rw-rw-r-- 1 obo obo 2 Sep 14 14:16 a -rw-rw-r-- 2 obo obo 2 Sep 14 14:16 b -rw-rw-r-- 2 obo obo 2 Sep 14 14:16 c
Toute modification à b se répercute sur c et inversément. Par exemple, echo -n 12345 >c aura comme résultat :
-rw-rw-r-- 1 obo obo 2 Sep 14 14:16 a -rw-rw-r-- 2 obo obo 6 Sep 14 14:22 b -rw-rw-r-- 2 obo obo 6 Sep 14 14:22 c
Les fichiers b et c ont tous les deux étés modifiés. Si on efface le fichier c, le fichier b reste utilisable et inversément.
Les liens symboliques s'obtiennent en utilisant l'option -s de ln. Ainsi, ls -s b d donnera :
-rw-rw-r-- 1 obo obo 2 Sep 14 14:16 a -rw-rw-r-- 2 obo obo 6 Sep 14 14:22 b lrwxrwxrwx 1 obo obo 1 Sep 14 14:16 d -> b
Notez que si on efface le fichier b, le lien restera.
man ln