LN(1)

NOM
ln - Créer des liens entre fichiers

SYNOPSIS
ln [options] source [dest]
ln [options] source... répertoire

Options POSIX : [-f] [--]

Options GNU (forme abrégée): [-bdfinsvF] [-S suffixe] [-V {numbered,existing,simple}] [--help] [--version] [--]

DESCRIPTION
Sous Unix, il existe deux types de « liens » entre fichiers, que l'on nomme généralement liens matériels (ou physiques) et liens symboliques (ou logiques). Un lien matériel est simplement une manière de nommer un fichier. Un fichier peut avoir plusieurs noms. Un fichier n'est effacé réellement que lorsque son dernier nom est supprimé. Le nombre de noms d'un fichier est indiqué par la commande ls(1). Il n'y a pas de notion de nom « original » : tous les noms d'un fichier ont exactement la même importance. Tous les noms d'un fichier se trouvent généralement - mais ce n'est pas obligatoire - dans le système de fichiers contenant les données du fichier.

Un lien symbolique est d'un tout autre genre. Il s'agit d'un petit fichier spécial, qui contient un chemin d'accès. Ainsi un lien symbolique peut pointer vers un système de fichiers différent de celui qui l'accueille. Il peut également pointer, grâce à NFS, vers un système de fichiers appartenant à une autre machine. Enfin, un lien symbolique ne pointe pas nécessairement vers un fichier existant. Lorsque l'on accède à un lien symbolique (avec les appels système open(2) ou stat(2)), le nom du lien symbolique est remplacé, par le noyau Unix, par une référence au fichier vers lequel le lien pointe. Toutefois, avec les appels rm(1) et unlink(2) le lien lui-même est supprimé, et non pas le fichier visé. Il existe des appels système spéciaux lstat(2) et readlink(2) qui renvoient le statut du lien symbolique, et le nom du fichier vers lequel il pointe. Pour de nombreux autres appels système, il existe une frange d'incertitudes et de variations entre les différents systèmes pour savoir si la fonction s'applique au lien symbolique lui-même, ou au fichier cible.

ln crée des liens entre fichiers. Par défaut, il s'agit de liens matériels. Si l'on utilise l'option -s, les liens seront symboliques (logiques).

Si l'on n'indique qu'un seul nom de fichier, un lien vers ce fichier est créé dans le répertoire courant. Le nom de ce lien sera le même que celui du fichier visé (il s'agit là d'une extension GNU). Sinon, si le dernier argument indique un répertoire existant, ln créera des liens sur chacun des fichiers source indiqués dans ce répertoire. Les noms seront égaux à ceux des fichiers source visés. (Consultez toutefois l'option --no-dereference plus bas). Si l'on indique seulement deux noms de fichiers, un lien sera créé avec le nom dest pointant vers le fichier source. Il est interdit d'indiquer plus de deux arguments si le dernier nom n'est pas un répertoire.

Par défaut, ln ne supprime pas les fichiers ni les liens symboliques existants. (Ainsi on peut l'utiliser à des fins de verrouillage, il échouera si dest existe déjà). On peut toutefois forcer l'écrasement avec l'option -f.

Avec les implémentations existant actuellement, seul le superutilisateur peut créer un lien matériel sur un répertoire, et encore, c'est souvent totalement impossible. POSIX interdit aux appels système link(2) et à l'utilitaire ln de créer des liens physiques sur un répertoire (mais n'interdit pas les liens matériels entre différents systèmes de fichiers).

OPTIONS POSIX

-f  Forcer l'écrasement du fichier destination s'il existe.

--  Fin explicite de la liste des options.

OPTIONS GNU

-d, -F, --directory
    Autoriser le superutilisateur à créer un lien physique sur un répertoire.

-f, --force
    Forcer l'écrasement du fichier destination s'il existe.

-i, --interactive
    Demander confirmation avant de supprimer les fichiers destination.

-n, --no-dereference
    Lorsque l'on fournit une destination explicite qui se trouve être un répertoire, la considérer comme un fichier normal.
    Lorsque la destination est un répertoire réel (et non pas un lien symbolique sur un répertoire), il n'y a pas d'ambiguïté. Le lien est créé dans ce répertoire. Mais lorsque la destination est un lien symbolique vers un répertoire, il y a deux possibilités pour traiter la demande. ln peut considérer la destination comme un répertoire normal, et créer le lien dans celui-ci. D'un autre côté, la destination peut également être considérée comme le lien symbolique lui-même à créer. Dans ce cas, ln doit détruire, ou archiver, le lien existant avant de créer le nouveau lien. Le comportement par défaut est de considérer la destination comme un répertoire à part entière.

-s, --symbolic
    Créer des liens symboliques à la place des liens physiques. Cette option produit souvent des messages d'erreurs sur les systèmes qui ne supportent pas les liens symboliques.

-v, --verbose
    Afficher le nom de chaque fichier avant de le lier.

OPTIONS DE SAUVEGARDE GNU
Les versions GNU des programmes comme cp, mv, ln, install et patch créeront au besoin une copie de sauvegarde des fichiers à écraser, à modifier ou à détruire. On demande une copie de sauvegarde à l'aide de l'option -b, on indique la nomenclature à adopter avec l'option -V, et si la sauvegarde se fait avec un suffixe, celui-ci est précisé avec l'option -S.

-b, --backup
    Créer une copie de sauvegarde des fichiers à écraser ou à détruire.

-S SUFFIXE, --suffix=SUFFIXE
    Ajouter le SUFFIXE indiqué à chaque fichier de sauvegarde créé. Si cette option n'est pas indiquée, on utilisera la valeur de la variable d'environnement SIMPLE_BACKUP_SUFFIX. Si la variable SIMPLE_BACKUP_SUFFIX n'existe pas, la valeur par défaut est « ~ »'.

-V MÉTHODE, --version-control=MÉTHODE
    Préciser la nomenclature des fichiers de sauvegarde La MÉTHODE indiquée peut être « numbered » (« t »), « existing » (« nil »), ou « never » (« simple »). Si cette option n'est pas indiquée, la valeur de la variable d'environnement VERSION_CONTROL est utilisée, et si la variable VERSION_CONTROL n'existe pas, la valeur par défaut est « existing ».

    Cette option correspond à la variable « version-control » sous Emacs. Les MÉTHODES valides (les abréviations non-ambiguës sont acceptées) sont :

    t, numbered
        Toujours faire une sauvegarde numérotée.

    nil, existing
        Faire une sauvegarde numérotée des fichiers en ayant déjà une précédente, et une sauvegarde simple pour les autres.

    never, simple
        Faire toujours une sauvegarde simple.

OPTIONS STANDARDS GNU

--help
    Afficher un message d'aide sur la sortie standard, et se terminer correctement.

--version
    Afficher un numéro de version sur la sortie standard, et se terminer correctement.

--  Fin de la liste d'options.

ENVIRONNEMENT
Les variables LANG, LC_ALL, LC_CTYPE et LC_MESSAGES ont leurs significations habituelles.

CONFORMITÉ
POSIX.2. Toutefois, POSIX.2 (1996) ne parle pas des liens symboliques. Ceux-ci ont été introduits par BSD, et n'existent pas dans Système V release 3 et antérieurs.

NOTES
Cette page décrit la version de ln trouvée dans le paquetage fileutils-4.0, d'autres versions peuvent différer légèrement.

VOIR AUSSI
ls(1), rm(1), link(2), lstat(2), open(2), readlink(2), stat(2), unlink(2)

TRADUCTION

Ce document est une traduction réalisée par Christophe Blaess <http://www.blaess.fr/christophe/> le 24 novembre 1996 et révisée le 25 avril 2008.

L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 1 ln ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.