ln(1) crea enlaces entre ficheros

SINOPSIS

ln [opciones] origen [dest]
ln [opciones] origen... directorio

Opciones de POSIX: [-f]

Opciones de GNU (en la forma más corta): [-bdfinsvF] [-S sufijo-de-respaldo] [-V {numbered,existing,simple}] [--help] [--version] [--]

DESCRIPCIÓN

Hay en Unix dos conceptos de `enlace', llamados usualmente enlace duro (o físico) y enlace blando (o simbólico). Un enlace duro es simplemente un nombre para un fichero. (Y un fichero puede tener varios nombres. Se borra del disco solamente cuando se elimine el último nombre. El número de nombres lo muestra ls(1). No existe el concepto de nombre `original': todos tienen la misma categoría. Usualmente, pero no necesariamente, todos los nombres de un fichero se encuentran en el sistema de ficheros que también contiene sus datos.)

Un enlace blando (o enlace simbólico, o acceso directo) es un animal completamente diferente: es un ficherito especial que contiene un nombre de camino. Así, los enlaces blandos pueden apuntar a ficheros en sistemas de ficheros diferentes (posiblemente montados por NFS desde máquinas diferentes), y no tienen por qué apuntar a ficheros que existan realmente. Cuando se accede a ellos (con las llamadas al sistema open(2) o stat(2)), el núcleo del sistema operativo reemplaza una referencia a un enlace blando con una referencia al fichero nombrado en el nombre de camino. (Sin embargo, con rm(1) y unlink(2) se borra el mismo enlace, no el fichero al cual apunte. Existen las llamadas al sistema especiales lstat(2) y readlink(2) que leen el estado de un enlace blando y el nombre de fichero al cual apunte. Para algunas otras llamadas al sistema, entre distintos sistemas operativos hay algunas variaciones y faltas de certeza sobre si la operación actúa en el mismo enlace, o sobre el fichero al que apunte.)

ln crea enlaces entre ficheros. De forma predeterminada, hace enlaces duros; con la opción -s, hace enlaces simbólicos (o `blandos').

Si sólo se da un fichero, lo enlaza en el directorio en curso; esto es, crea un enlace a ese fichero en el directorio de trabajo, con el nombre igual al (último componente) del fichero. (Esto es una extensión de GNU.) De otro modo, si el último argumento se refiere a un directorio existente, ln creará enlaces a cada fichero origen mencionado, en ese directorio, con un nombre igual al (último componente) de ese fichero origen. (Pero vea la descripción de la opción --no-dereference más abajo.) De otra forma, si sólo se dan dos ficheros, crea un enlace llamado dest al fichero origen. Es un error que el último argumento no sea un directorio y que se den más de dos ficheros.

De forma predeterminada, ln no borra ficheros o enlaces simbólicos que ya existan. (Así, puede emplearse para propósitos de bloqueo: tendrá éxito solamente si dest no existía ya.) Pero se le puede forzar a borrarlos con la opción -f.

En implementaciones existentes, si es que fuera posible hacer un enlace duro a un directorio, esto sólo debe ser hecho por el súper-usuario. POSIX prohíbe que la llamada al sistema link(2) y la utilidad ln hagan enlaces duros a directorios (pero no prohíbe que los enlaces duros crucen los limites de los sistemas de ficheros).

OPCIONES DE POSIX

-f
Borra los ficheros de destino que ya existieran.

OPCIONES DE GNU

-d, -F, --directory
Permite al súper-usuario hacer enlaces duros a directorios.
-f, --force
Borra los ficheros de destino que ya existieran.
-i, --interactive
Pregunta antes de borrar ficheros de destino existentes.
-n, --no-dereference
Cuando se da un destino explícito que es un enlace blando a un directorio, trata a ese destino como si fuera un fichero normal.

Cuando el destino es un directorio de verdad (no un enlace simbólico a uno), no hay ambigüedad. El enlace se crea en ese directorio. Pero cuando el destino especificado es un enlace simbólico a un directorio, hay dos maneras de tratar la petición del usuario. ln puede tratar el destino justo como si fuera un directorio normal y crear el enlace en él. Por otra parte, el destino puede ser visto como un no-directorio: como el enlace simbólico en sí mismo. En ese caso, ln debe borrar o hacer copia de respaldo de ese enlace simbólico antes de crear el nuevo enlace. El comportamiento predeterminado es tratar un destino que sea un enlace simbólico a un directorio como justamente un directorio.

-s, --symbolic
Hace enlaces simbólicos en lugar de enlaces duros. Esta opción simplemente produce un mensaje de error en sistemas que no admitan enlaces simbólicos.
-v, --verbose
Muestra el nombre de cada fichero antes de enlazarlo.

OPCIONES DE RESPALDO DE GNU

Las versiones de GNU de programas como cp, mv, ln, install y patch harán una copia de respaldo de ficheros que estén a punto de ser sobreescritos, cambiados o destruidos, si se desea. Y para indicar que se desean estos ficheros de respaldo se emplea la opción -b. Se especifica cómo deberían nombrarse mediante la opción -V. En el caso de que el nombre del fichero de respaldo se dé con el nombre del fichero extendido con un sufijo, este sufijo se especifica con la opción -S.
-b, --backup
Hace copias de respaldo de ficheros que estén a punto de ser sobreescritos o borrados.
-S SUFIJO, --suffix=SUFIJO
Añade SUFIJO a cada fichero de respaldo hecho. Si esta opción no se da, se emplea el valor de la variable de entorno SIMPLE_BACKUP_SUFFIX. Y si SIMPLE_BACKUP_SUFFIX no está definida, el valor predeterminado es `~'.
-V MÉTODO, --version-control=MÉTODO
Especifica cómo los ficheros de respaldo han de llamarse. El argumento MÉTODO puede ser `numbered' (o `t'), `existing' (o `nil'), o `never' (o `simple'). Si esta opción no se da, se emplea el valor de la variable de entorno VERSION_CONTROL. Y si VERSION_CONTROL no está definida, el tipo predeterminado de copia de respaldo es `existing'.

Esta opción corresponde a la variable de Emacs `version-control'. Los MÉTODOs válidos son (se aceptan abreviaturas no ambiguas):

t, numbered
Siempre hace copias de respaldo numeradas.
nil, existing
Hace copias de respaldo numeradas de ficheros que ya las tengan, copias simples de los otros.
never, simple
Siempre hace copias de respaldo simples.

OPCIONES ESTÁNDARES DE GNU

--help
Muestra un mensaje en la salida estándar sobre el modo de empleo y acaba con estado de éxito.
--version
Muestra en la salida estándar información sobre la versión, y luego acaba con estado de éxito.
--
Termina con la lista de opciones.

ENTORNO

Las variables LANG, LC_ALL, LC_CTYPE y LC_MESSAGES tienen los significados usuales. Para la versión de GNU, las variables SIMPLE_BACKUP_SUFFIX y VERSION_CONTROL controlan cómo se nombran los ficheros de respaldo, según se ha descrito anteriormente.

CONFORME A

POSIX 1003.2. Sin embargo, POSIX 1003.2 (1996) no discute sobre enlaces blandos. Los enlaces blandos fueron introducidos por BSD, y no existen en sistemas System V release 3 (ni más antiguos).

OBSERVACIONES

Esta página describe ln según se encuentra en el paquete fileutils-4.0; otras versiones pueden diferir un poco. Envíe por correo electrónico correcciones y adiciones a la dirección [email protected]. Informe de fallos en el programa a [email protected].