man ln (Commandes) - Créer des liens entre fichiers.
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 fichier 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èmes 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èmes 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èmes, 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 Super-User 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 physique 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 Super-User à 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 1003.2. Toutefois, POSIX 1003.2 (1996) ne parle pas des liens symboliques. Ceux-ci ont été introduits par BSD, et n'existent pas dans System V release 3 et antérieurs.
VOIR AUSSI
NOTES
Cette page décrit la version de ln se trouvant dans le paquet fileutils-4.0. D'autres versions peuvent différer légèrement.
TRADUCTION
Christophe Blaess, 1998-2003.