Autor(es) original(es) | Laboratorios Bell de AT&T |
---|---|
Desarrollador(es) | Varios desarrolladores comerciales y de código abierto |
Lanzamiento inicial | 3 de noviembre de 1971 ( 03-11-1971 ) |
Sistema operativo | Unix , similar a Unix , IBM i |
Plataforma | Multiplataforma |
Tipo | Dominio |
Licencia | coreutils : licencia GPLv3+ |
El ln
comando es una utilidad de comandos estándar de Unix que se utiliza para crear un enlace duro o un enlace simbólico (symlink) a un archivo o directorio existente. [1] El uso de un enlace duro permite asociar varios nombres de archivo con el mismo archivo, ya que un enlace duro apunta al inodo de un archivo determinado, cuyos datos se almacenan en el disco . Por otro lado, los enlaces simbólicos son archivos especiales que hacen referencia a otros archivos por su nombre . [2]
El ln
comando crea enlaces duros de forma predeterminada y, cuando se lo llama con el parámetro de línea de comandos , crea enlaces simbólicos. [3] La mayoría de los sistemas operativos impiden la creación de enlaces duros a directorios , ya que dicha capacidad podría alterar la estructura de un sistema de archivos e interferir con el funcionamiento de otras utilidades. [4] Sin embargo, el comando se puede utilizar para crear enlaces simbólicos a archivos inexistentes. [2] ln -s
ln
ln
apareció en la Edición 2 de las Directrices de Portabilidad X/Open . [5] La versión ln
incluida en GNU coreutils fue escrita por Mike Parker y David MacKenzie. [6]
El comando está disponible como un paquete separado para Microsoft Windows como parte de la colección UnxUtils de puertos Win32 nativos de utilidades comunes de GNU Unix. [7] El comando ln también ha sido portado al sistema operativo IBM i . [8]
Los enlaces permiten que más de un nombre de archivo haga referencia al mismo archivo, como en el caso de un enlace físico , o que actúen como punteros a un nombre de archivo, como en el caso de un enlace simbólico . Tanto los enlaces físicos como los simbólicos se pueden crear mediante el ln
comando. En concreto,
readlink
utilidad de línea de comandos. [12] El enlace simbólico puede contener una cadena arbitraria que no haga referencia a la ubicación de un archivo existente. Un enlace simbólico de este tipo fallará hasta que se cree un archivo en la ubicación que contiene el enlace simbólico. Por el contrario, un enlace simbólico a un archivo existente fallará si el archivo existente se mueve a una ubicación diferente (o se le cambia el nombre). [9]La ln
utilidad en sistemas compatibles con la Especificación Única de Unix se especifica en el documento Shell and Utilities (XCU), que forma parte de la Especificación Única de Unix. [13] Un documento prácticamente idéntico forma parte de POSIX . [5]
La especificación describe dos formas de invocar la ln
utilidad. En concreto,
ln
utilidad crea un nuevo vínculo físico (entrada de directorio) para el archivo de origen especificado por el source_file
operando en la ruta de destino especificada por el target_file
operando. Sin embargo, si -s
se especifica la opción, se crea un vínculo simbólico.ln [ -fs ] [ -L | -P ] archivo_origen archivo_destino
ln
utilidad crea un nuevo enlace duro (entrada de directorio) o, si -s
se especifica la opción, un enlace simbólico, para cada archivo especificado por el source_file
operando, en una ruta de destino en un directorio existente nombrado por el operando target_dir
.ln [ -fs ] [ -L | -P ] archivo_fuente_1 archivo_fuente_2 ... directorio_destino
La especificación también especifica las opciones de línea de comandos que deben admitirse:
-f
Forzar la eliminación de las rutas de destino existentes para permitir el enlace.-L
Para cada source_file
operando que nombre un archivo que sea un enlace simbólico, cree un enlace duro al archivo al que hace referencia el enlace simbólico.-P
Para cada source_file
operando que nombre un archivo que sea un enlace simbólico, cree un enlace (duro) al enlace simbólico en sí.-s
Crea enlaces simbólicos en lugar de enlaces físicos. Si se especifica la opción -s, las opciones -L y -P se ignoran automáticamente.-L
, -P
la última opción especificada determina el comportamiento de la utilidad.-s
no se especifica la opción y no se especifica -L
ni la opción a, la implementación define cuál de las opciones y se utilizará como predeterminada.-P
-L
-P
Si no se especifica ni el archivo ni el directorio de destino, los enlaces se crearán en el directorio de trabajo actual .