El ln
comando es una utilidad de comando estándar de Unix que se utiliza para crear un enlace físico o un enlace simbólico (enlace simbólico) a un archivo o directorio existente. [1] El uso de un vínculo físico permite asociar varios nombres de archivo con el mismo archivo, ya que un vínculo físico apunta al inodo de un archivo dado, cuyos datos se almacenan en el disco . Por otro lado, los enlaces simbólicos son archivos especiales que se refieren a otros archivos por su nombre . [2]
Autor (es) original (es) | Laboratorios AT&T Bell |
---|---|
Desarrollador (es) | Varios desarrolladores comerciales y de código abierto |
Versión inicial | 3 de noviembre de 1971 |
Sistema operativo | Unix , similar a Unix , IBM i |
Plataforma | Multiplataforma |
Tipo | Mando |
Licencia | coreutils : GPLv3 + |
El ln
comando crea vínculos físicos por defecto, y cuando se llama con el parámetro de línea de comando crea vínculos simbólicos. [3] La mayoría de los sistemas operativos evitan que se creen enlaces duros a directorios, ya que dicha capacidad podría interrumpir la estructura de un sistema de archivos e interferir con el funcionamiento de otras utilidades. [4] El comando sin embargo se puede utilizar para crear enlaces simbólicos a ficheros que no existen. [2] ln -s
ln
Historia
Apareció en el número 2 de X / Open Portability Guidelines. [5] La versión de coreutilsln
incluida en GNU fue escrita por Mike Parker y David MacKenzie. [6] El comando ln también se ha adaptado al sistema operativo IBM i . [7]
Enlaces
Los enlaces permiten que más de un nombre de archivo se refiera al mismo archivo como en el caso de un enlace físico o actúen como punteros a un nombre de archivo como en el caso de un enlace flexible . El ln
comando puede crear vínculos físicos y vínculos suaves . Específicamente,
- Los enlaces duros , también conocidos simplemente como enlaces, son objetos que asocian el nombre del archivo con el inodo y, por lo tanto, el contenido del archivo en sí. [1] Un archivo dado en el disco podría tener múltiples enlaces esparcidos a través de la jerarquía de directorios , siendo todos los enlaces equivalentes ya que todos se asocian con el mismo inodo . [8] Por lo tanto, la creación de un enlace no copia el contenido del archivo, sino que simplemente hace que se asocie otro nombre con el mismo contenido. Cada vez que se crea un enlace físico, se incrementa un contador de enlaces que forma parte de la estructura del inodo ; un archivo no se elimina hasta que su recuento de referencias llega a cero. [1] [9] Sin embargo, los enlaces físicos solo se pueden crear en el mismo sistema de archivos ; esto puede resultar una desventaja. [10]
- Los enlaces simbólicos son archivos especiales que, cuando se encuentran durante la resolución del nombre de la ruta , modifican la resolución del nombre de la ruta que se llevará a la ubicación que contiene el enlace simbólico. El contenido del enlace simbólico es, por tanto, la cadena de la ruta de destino , que también se puede examinar mediante la
readlink
utilidad de línea de comandos. [11] El enlace simbólico puede contener una cadena arbitraria que no se refiere a la ubicación de un archivo existente. Dicho vínculo simbólico fallará hasta que se cree un archivo en la ubicación que contiene el vínculo 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). [8]
Especificación
La ln
utilidad en los sistemas que cumplen 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. [12] Un documento casi idéntico es parte de POSIX . [5]
La especificación describe dos formas de invocar la ln
utilidad. Específicamente,
- En la invocación de "archivo único", la
ln
utilidad crea un nuevo vínculo físico (entrada de directorio) para el archivo de origen especificado por elsource_file
operando en la ruta de destino especificada por eltarget_file
operando. Sin embargo, si-s
se especifica la opción, se crea un enlace simbólico. ln [ -fs ] [ -L | -P ] archivo_origen archivo_destino
- En la invocación de "archivos múltiples", la
ln
utilidad crea un nuevo enlace físico ( entrada de directorio ), o si-s
se especifica la opción, un enlace simbólico, para cada archivo especificado por elsource_file
operando, en una ruta de destino en un directorio existente nombrado por operandotarget_dir
. ln [ -fs ] [ -L | -P ] archivo_origen_1 archivo_origen_2 ... dir_destino
- En la invocación de "archivo único", la
La especificación también especifica las opciones de la línea de comandos que deben admitirse:
-f
Forzar la eliminación de los nombres de ruta de destino existentes para permitir el enlace.-L
Para cadasource_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 cadasource_file
operando que nombre un archivo que sea un enlace simbólico, cree un enlace (duro) al enlace simbólico en sí.-s
Cree enlaces simbólicos en lugar de enlaces duros. Si se especifica la opción -s, las opciones -L y -P se ignoran silenciosamente.- Si hay más de una de las opciones mutuamente excluyentes
-L
y-P
se especifica la última opción especificada determina el comportamiento de la utilidad. - Si
-s
no se especifica la opción y no se especifica-L
una-P
opción ni una , la implementación define cuál de las opciones-L
y-P
se utilizará como predeterminada.
Si no se especifica ni el archivo de destino ni el directorio de destino, se crearán enlaces en el directorio de trabajo actual .
Ver también
- Lista de comandos de Unix
- Punto de unión NTFS
Referencias
- ^ a b c Kernighan, Brian W .; Pike, Rob (1984). El entorno de programación Unix . Englewood Cliffs, Nueva Jersey: Prentice-Hall. pag. 59 . ISBN 013937681X.
- ^ a b "GNU Coreutils: Invocación" . gnu.org . Free Software Foundation, Inc . Consultado el 7 de agosto de 2015 .
- ^ "ln - The Open Group Base Especificaciones Edición 7" . pubs.opengroup.org . El IEEE y The Open Group . Consultado el 7 de agosto de 2015 .
- ^ "¿Por qué no se permiten enlaces físicos a directorios en UNIX / Linux?" . unix.stackexchange.com . Consultado el 7 de agosto de 2015 .
- ^ a b - Referencia de comandos y utilidades, la especificación única de UNIX , número 7 de The Open Group
- ^ - Manual de comandos generales de Linux
- ^ IBM . "IBM System i Versión 7.2 Programación Qshell" (PDF) . Consultado el 5 de septiembre de 2020 .
- ^ a b Más suelto, Sandra; Stallman, Richard M .; McGrath, Roland; Oram, Andrew; Drepper, Ulrich. El Manual de referencia de la biblioteca GNU C (PDF) . Free Software Foundation, Inc. pág. 392 . Consultado el 7 de agosto de 2015 .
- ^ "Hablar UNIX: se trata del inodo" . ibm.com . IBM developerWorks . Consultado el 7 de agosto de 2015 .
- ^ Bovet, Daniel P .; Cesati, Marco (2005). Comprensión del kernel de Linux (3ª ed.). Boston, MA: Safari Tech Books Online. pag. 14. ISBN 0596005652.
- ^ "readlink (1) - página de manual de Linux" . linux.die.net . Consultado el 7 de agosto de 2015 .
- ^ "La Especificación Única de UNIX, Versión 4 - Descripción general" . unix.org . unix.org . Consultado el 7 de agosto de 2015 .
enlaces externos
- - Manual de comandos de usuario de Linux
- - Manual de comandos generales de FreeBSD
- - Manual de comandos generales de NetBSD
- - Manual de comandos generales de OpenBSD
- - Manual de comandos generales de Darwin y macOS