El comando ln se usa para crear un enlace a un archivo. La vinculación permite que un nombre de archivo en un directorio (el enlace) apunte a un archivo en otro directorio (el destino). Un enlace no contiene datos propios, solo una referencia al archivo de destino. Cualquier cambio en el enlace se reflejará en el archivo de destino. Si no especifica el nombre del enlace, el comando ln creará el enlace en su directorio de trabajo actual.
Sintaxis
La sintaxis del comando ln es:
# ln [options] {target name} [link name]
Opciones de comando ln
El comando ln tiene varias opciones. Algunas de las opciones de uso frecuente se dan en la siguiente tabla.
Opción | Solía |
---|---|
–copia de seguridad | Copia de seguridad de los archivos de destino existentes. |
-f | Eliminar archivos de destino existentes. |
-s | Haga enlaces simbólicos en lugar de enlaces duros. -i Solicitud para eliminar los archivos de destino. |
-v | Imprima el nombre de un archivo antes de vincularlo. |
Tipos de enlaces
Usando el comando ln, puede crear dos tipos de enlaces:duros y simbólicos (suaves). Los enlaces físicos y simbólicos son una característica del sistema de archivos y son comunes en la mayoría de los sistemas de archivos compatibles con Linux. Los sistemas de archivos ext2, ext3, ext4 y XFS admiten enlaces físicos y simbólicos.
Enlaces físicos
Un enlace fijo es una referencia a otro archivo; permite que los datos del archivo tengan más de un nombre en diferentes ubicaciones en el mismo sistema de archivos. Las aplicaciones tratan un enlace físico como un archivo real. Si el archivo original se elimina después de crear un vínculo físico, todo su contenido seguirá estando disponible en el archivo vinculado. Esto se debe a que el inodo de un enlace fijo es el mismo que su destino; en otras palabras, apunta al mismo objeto en el sistema de archivos. No se pueden crear enlaces duros entre dos directorios, ni se pueden crear entre dos archivos en diferentes sistemas de archivos.
Enlaces blandos (enlaces simbólicos)
Un enlace simbólico es una referencia a un archivo o directorio que puede abarcar varios sistemas de archivos. Si el archivo o directorio original se elimina después de crear un vínculo simbólico, el contenido original se pierde. Esto se debe a que el inodo de un enlace simbólico es diferente a su destino; en otras palabras, apunta a un objeto diferente en el sistema de archivos. Un enlace simbólico también se conoce como enlace blando.
Ejemplos de enlaces
El siguiente es un ejemplo de la creación de un vínculo físico con el comando ln, donde /backup/backup-report es el destino del vínculo y ~/backup-report es el vínculo mismo:
$ ln /backup/backup-report ~/backup-report
El siguiente es un ejemplo de lo mismo, pero creando un enlace simbólico en lugar de un enlace físico:
$ ln -s /backup/backup-report ~/backup-report
Ejemplos de comandos ln
1. Para crear un enlace de un archivo existente:
# ln file.txt file.ln
2. Para crear un vínculo suave para el archivo existente:
# ln -s file.txt file.ln
3. Para hacer una copia de seguridad de cada archivo de destino:
# ln --backup file.txt file.bk
4. Para permitir que el superusuario intente crear directorios vinculados:
# ln -d
5. Para crear los enlaces con la eliminación de los archivos de destino existentes:
# ln -f # ln --force
6. Para preguntar si desea eliminar el archivo de destino:
# ln -i # ln --interactive
7. Para hacer enlaces duros a referencias de enlaces simbólicos:
# ln -L # ln --logical
8. Para tratar el directorio de enlaces simbólicos de destino como un archivo:
# ln -n # ln --no-dereference
9. Para hacer enlaces duros directamente a enlaces simbólicos:
# ln -P # ln --physical
10. Para hacer enlaces simbólicos en lugar de enlaces físicos:
# ln -s
11. Para anular el sufijo de copia de seguridad habitual:
# ln -S # ln --suffix=SUFFIX
12. Para especificar el directorio en el que se debe crear el directorio:
# ln -t # ln --target-directory=DIRECTORY
13. Para tratar el nombre del enlace como un archivo normal:
# ln -T # ln --no-target-directory
14. Para imprimir el nombre de cada archivo vinculado:
# ln -v # ln --verbose
15. Para obtener ayuda para ln:
# ln --help
16. Para obtener la información de la versión:
# ln --version