Linux

¿Qué es «ln» en Linux y cómo se usa en la terminal?

octubre 13, 2026 Qué es mejor? 11 min read
¿Qué es «ln» en Linux y cómo se usa en la terminal?

La respuesta corta: simbólico con ln -s para la mayoría, duro solo para casos concretos

Si quieres un acceso directo a un archivo o carpeta, que funcione entre discos y que se vea como un atajo, usa enlace simbólico con ln -s. Es la opción correcta en el 90% de los casos: para tener tu configuración en dos sitios, para apuntar /var/www/html a otra carpeta o para versionar binarios. Si borras el original, el simbólico queda roto, y eso es previsible.

Elige enlace duro ln sin -s solo cuando necesitas que dos nombres apunten al mismo contenido físico en el mismo sistema de archivos y que el archivo sobreviva aunque borres uno de los nombres. Es útil para copias sin duplicar espacio o para mantener un fichero aunque se elimine el original por un script. No cruza sistemas de archivos, no apunta a directorios y confunde si no controlas inodos.

Perfil 1 – escritorio y desarrollo: simbólico relativo con ln -sr. Perfil 2 – administración con particiones distintas: simbólico obligado. Perfil 3 – respaldo interno en la misma partición donde importa conservar el inodo: duro.

Qué necesitas antes de empezar

ln forma parte de GNU coreutils, así que está en cualquier distribución como Ubuntu, Linux Mint, Debian, Fedora Workstation, Zorin OS o ChromeOS con entorno Linux activado. Comprueba versión con ln --version; a partir de coreutils 8.x ya incluye -r para enlaces relativos. Funciona en Linux y no en Windows o macOS de forma nativa con la misma sintaxis.

Necesitas permiso de escritura en el directorio donde crearás el enlace y permiso de lectura sobre el destino. Si es un directorio del sistema, usa sudo.

Decide ruta absoluta frente a relativa: la absoluta /home/usuario/docs/archivo.txt no se rompe si mueves el enlace, la relativa ../docs/archivo.txt sí se mantiene si mueves toda la carpeta contenedora. Usa ln -sr para que ln calcule la relativa por ti.

Para verificar inodos y tipo de enlace usa ls -l que muestra -> en simbólicos y ls -i que muestra el número de inodo. En un duro, dos nombres comparten el mismo número. Datos comprobados en septiembre de 2026.

Métodos para crear enlaces comparados

Elige el método según si necesitas cruzar particiones, enlazar directorios y qué debe pasar al borrar el origen. Esta tabla resume el comportamiento verificable de ln.

método comando base cruza sistemas de archivos apunta a directorios qué pasa si borras el origen caso de uso típico
Enlace simbólico absoluto ln -s /origen /destino sí sí enlace queda roto, ls -l muestra destino en rojo atajo a carpeta en otro disco
Enlace simbólico relativo ln -sr /origen /destino sí sí igual, roto si el relativo ya no resuelve repositorio portable que se mueve entero
Enlace duro ln /origen /destino no no el fichero sigue accesible por el otro nombre, mismo inodo copia sin duplicar bloques en misma partición
Enlace duro a directorio ln -d /origen /destino no solo con privilegios de superusuario y según sistema de archivos sin dato sin dato, desaconsejado

Enlace simbólico (soft)

Un enlace simbólico es un fichero especial que contiene una ruta de texto hacia otro fichero o directorio. No comparte inodo con el destino, ocupa unos pocos bytes y el sistema lo resuelve en cada acceso. Por eso puede apuntar a un directorio y a otra partición, incluso a un destino que aún no existe.

Se identifica con ls -l: aparece una l al inicio de los permisos y una flecha origen -> destino. Por ejemplo lrwxrwxrwx 1 usuario usuario 18 23 sep 10:00 misdocs -> /home/usuario/docs. Si el destino se mueve o se borra, el enlace sigue existiendo pero al abrirlo devuelve No such file or directory. El comando file enlace indica broken symbolic link y readlink enlace muestra a dónde apunta sin resolverlo.

Enlace duro (hard)

Un enlace duro es un nombre adicional para el mismo inodo en disco. No es una copia: dos entradas de directorio apuntan al mismo bloque de datos y comparten permisos, propietario y contenido. Se verifica con ls -i; ambos nombres devuelven el mismo número, por ejemplo 1234567 archivo.txt y 1234567 copia-dura.txt. El contador de enlaces que muestra ls -l en la segunda columna sube de 1 a 2.

Tiene limitaciones concretas: solo funciona dentro del mismo sistema de archivos, por lo que ln /mnt/disco1/foto.jpg /home/usuario/foto.jpg falla si son particiones distintas con Invalid cross-device link. No apunta a directorios en uso normal para evitar ciclos en el árbol. Y a nivel de copias de seguridad y sincronización, editar por uno de los nombres modifica el otro porque son el mismo fichero.

Método 1: crear enlace simbólico con ln -s

  1. Enlace a un archivo con ruta absoluta. Sintaxis ln -s origen destino. Ejemplo: ln -s /home/usuario/documentos/informe.pdf /home/usuario/escritorio/informe.pdf. Comprueba con ls -l /home/usuario/escritorio/informe.pdf y verás -> /home/usuario/documentos/informe.pdf.
  2. Enlace a un directorio. Mismo comando: ln -s /var/log /home/usuario/logs. Si el destino ya existe como directorio y quieres crear el enlace dentro, añade / final al destino o usa -T para controlar si debe tratarse como fichero.
  3. Enlace relativo automático con -r. Desde /home/usuario/proyecto/ ejecuta ln -sr /home/usuario/documentos/informe.pdf ./informe.pdf. ln calcula ../documentos/informe.pdf por ti y el enlace sigue válido si mueves proyecto y documentos juntos manteniendo estructura.
  4. Crear varios enlaces a la vez con -t. Si tienes un directorio enlaces/ y quieres enlazar varios ficheros: ln -s -t ./enlaces/ /home/usuario/docs/a.txt /home/usuario/docs/b.txt. Cada fichero crea un simbólico dentro de enlaces/ con su mismo nombre.
  5. Verifica y prueba. Usa readlink -f ./informe.pdf para ver la resolución completa y cat ./informe.pdf para confirmar que lee el contenido. Si luego mueves el origen, ls -l lo marcará en rojo y test -e ./informe.pdf || echo "roto" lo detecta en scripts.

Método 2: crear enlace duro

  1. Crea el enlace sin -s y en la misma partición. Sintaxis ln origen destino. Ejemplo: ln /home/usuario/datos/foto.jpg /home/usuario/datos/foto-respaldo.jpg. No añadas / final ni intentes cruzar discos.
  2. Verifica que comparten inodo. Ejecuta ls -i /home/usuario/datos/foto.jpg /home/usuario/datos/foto-respaldo.jpg. Ambos deben devolver el mismo número, por ejemplo 789012. Con ls -l verás el contador de enlaces en 2: -rw-r--r-- 2 usuario usuario 2048 23 sep 10:00 foto.jpg.
  3. Prueba el comportamiento al borrar el original. Borra el primer nombre: rm /home/usuario/datos/foto.jpg. El segundo sigue abriendo el contenido con cat /home/usuario/datos/foto-respaldo.jpg y ls -i mantiene el mismo inodo pero el contador baja a 1. El espacio en disco no se libera hasta borrar todos los nombres.
  4. Comprende la limitación honesta. Si intentas ln /home/usuario/datos/foto.jpg /mnt/usb/foto.jpg y /mnt/usb es otro sistema de archivos, ln devuelve failed to create hard link ... Invalid cross-device link. Para ese caso usa simbólico. Tampoco intentes ln /home/usuario/docs /home/usuario/docs-link para un directorio: devuelve hard link not allowed for directory salvo con ln -d como superusuario, lo cual está desaconsejado y bloqueado en la mayoría de sistemas.

Opciones que evitan errores: -f, -i, -n, -v, -b y –backup

Controlar la sobrescritura es donde se pierden ficheros. Estas opciones modifican cómo ln actúa si el destino ya existe.

  • -f, --force: borra el destino existente antes de crear el enlace. Ventaja: evita el error File exists en scripts automatizados. Inconveniente: sobrescribe sin avisar y puedes perder el fichero destino si apuntabas mal el origen.
  • -i, --interactive: pregunta antes de sobrescribir. Ventaja: seguro para uso manual. Inconveniente: interrumpe scripts no atendidos.
  • -n, --no-dereference: si el destino es un enlace simbólico a directorio, lo trata como fichero y lo reemplaza en lugar de crear dentro de él. Ventaja: evita crear destino/origen por accidente. Inconveniente: si no lo conoces, el comportamiento por defecto confunde.
  • -v, --verbose: muestra cada enlace creado. Ventaja: trazabilidad. Inconveniente: ninguno relevante, solo ruido en salida.
  • -b, --backup y --backup=numbered: hace copia del destino existente antes de reemplazar, por ejemplo ln -sb origen destino crea destino~ o ln --backup=numbered crea destino.~1~. Ventaja: permite deshacer. Inconveniente: deja ficheros de respaldo que hay que limpiar.

Combinación recomendada para forzar sin silencios: ln -fnv -s origen destino sobrescribe enlaces a directorio de forma correcta y te dice qué hizo. Para trabajo manual donde no quieres riesgo, usa ln -si -s origen destino o ln -sib origen destino.

Usa -fnv cuando automatizas y sabes que el destino es reemplazable, y -i o -b cuando el destino puede contener datos que no quieres perder sin copia.

Si no funciona: enlaces rotos, permiso denegado y directorios

  • Enlace roto: ocurre cuando el origen se mueve, se renombra o se borra. ls -l muestra el destino en rojo parpadeante y file enlace dice broken symbolic link to .... No es un error de ln, es el comportamiento de un simbólico. Verifica con readlink enlace y readlink -f enlace para ver qué ruta intenta resolver. Repara con ln -sf nuevo_origen enlace o borra y recrea. En scripts, detecta con [ -L "$f" ] && [ ! -e "$f" ].
  • Permiso denegado: ln: failed to create symbolic link ... Permission denied indica que no tienes escritura en el directorio destino o que necesitas sudo para rutas como /usr/local/bin. Comprueba con ls -ld $(dirname destino) y id -u. No cambies permisos de sistema a 777 para salir del paso: usa sudo ln -s ... solo donde corresponde.
  • Crear hard link a directorio falla: ln: hard link not allowed for directory es lo esperado. La opción ln -d o --directory solo la permite el superusuario y muchos sistemas de archivos la bloquean aunque seas root, porque crear ciclos rompe fsck y recorridos del sistema. Si necesitas enlazar un directorio, usa siempre simbólico.
  • Cruzar sistemas de archivos con duro: Invalid cross-device link confirma que debes cambiar a ln -s.

### Preguntas frecuentes

1. ¿Cómo funcionan los enlaces simbólicos en Linux con un ejemplo concreto?

El enlace simbólico es un acceso directo a otro archivo o carpeta. Para crear uno, usa el comando ln -s seguido de la ruta del archivo original y la ruta del enlace nuevo. Por ejemplo, ln -s /home/usuario/documento.txt /home/usuario/acceso_directo.txt crea un atajo en la carpeta del usuario que apunta al documento. Si eliminas el archivo original, el enlace simbólico dejará de funcionar y mostrará un error al intentar abrirlo.

2. ¿Qué hace la opción -s en el comando ln de Linux?

La opción -s indica que se debe crear un enlace simbólico (o blando) en lugar de un enlace duro. Sin esta opción, ln crea un enlace duro por defecto, que es una copia del índice del archivo en el mismo sistema de archivos. Los enlaces simbólicos son atajos que pueden apuntar a archivos en otras particiones o unidades de disco, pero dependen de que la ruta original siga existiendo.

3. ¿Cómo creo un enlace simbólico a un directorio en Linux?

El procedimiento es el mismo que para un archivo: usa ln -s seguido de la ruta del directorio original y la ubicación del nuevo enlace. Un ejemplo es ln -s /var/www/html/misitio /home/usuario/escritorio/enlace_web, lo que coloca un acceso directo en el escritorio. Si mueves el enlace a otro lugar, la ruta relativa puede romperse, por lo que se recomienda usar rutas absolutas al crearlos.

4. ¿Cuál es la sintaxis básica para crear un enlace simbólico en Linux?

La sintaxis es ln -s [archivo_o_directorio_original] [ruta_del_enlace_nuevo]. Es fundamental incluir el guion -s para que sea simbólico; sin él, el sistema creará un enlace duro. Si el archivo de destino ya existe, el comando dará un error para evitar sobrescrituras accidentales a menos que se use la opción -f para forzarlo.

5. ¿Cuál es el comando exacto para generar un enlace simbólico en la terminal?

El comando es ln -s, que significa link symbolic. Para verificar que el enlace se creó correctamente, puedes usar el comando ls -l en el directorio donde lo generaste; en la salida verás la ruta del enlace apuntando al archivo original con una flecha. Si el enlace está roto porque el archivo original se movió, el sistema lo mostrará en rojo o con un mensaje de error al intentar acceder.

6. ¿Cómo funcionan los enlaces simbólicos en Windows equivalentes a ln?

En Windows, la función equivalente es el comando mklink que se ejecuta en el símbolo del sistema (cmd) o PowerShell. Para crear un enlace simbólico a un archivo, la sintaxis es mklink [ruta_del_enlace] [ruta_del_original]. A diferencia de Linux, en Windows necesitas tener permisos de administrador para ejecutar este comando de forma predeterminada en muchas versiones del sistema operativo.

7. ¿Cómo elimino un enlace simbólico en Linux sin afectar el archivo original?

Para eliminar un enlace simbólico, usa rm seguido de la ruta del enlace, como rm /home/usuario/acceso_directo.txt. Es seguro porque solo borra el archivo de tipo enlace, que es un puntero, y no toca el archivo o directorio original al que apunta. Si intentas borrar un archivo normal con rm, se elimina el contenido; pero con el enlace, solo se elimina la referencia.

8. ¿Cómo utilizo el comando ln en un script de Bash?

Dentro de un script de Bash, ln se usa de la misma forma que en la terminal interactiva, comenzando con #!/bin/bash en la primera línea para definir el intérprete. Puedes, por ejemplo, escribir ln -s /datos/respaldo.txt /documentos/enlace_bash para automatizar la creación de enlaces. Es recomendable comprobar si el enlace ya existe con un condicional antes de ejecutar ln para evitar errores de sobreescritura en el flujo del script.

Fuentes

  1. StackoverflowWhat is the usage or apply scenarios of 'ln' or 'ln -s'? – Stack Overflowconsultado el 23/09/2026
  2. Ss64ln Man Page – Linux – SS64consultado el 23/09/2026
  3. FreecodecampLinux ln – How to Create a Symbolic Link in Linux [Example Bash …consultado el 23/09/2026
  4. Oreillyln – A Practical Guide to Red Hat® Linux® 8 [Book] – O'Reillyconsultado el 23/09/2026
  5. RedhatSysadmin fundamentals: Create soft links in Linux – Red Hatconsultado el 23/09/2026