Aprende leyendo en orden

Enlaces simbólicos y físicos — ln

Crea un enlace simbólico que guarda una ruta con ln -s target.txt link.txt y comprueba el -> en ls -l, luego haz un enlace físico al mismo cuerpo de datos con ln base.txt hard.txt; mira la diferencia con diagramas y una terminal del navegador.

Enlaces simbólicos — ln -s

Un enlace te permite llegar al mismo archivo con otro nombre. Creas un enlace simbólico con ln -s target name, y es un archivo especial que guarda la ruta (ubicación) del destino. Cuando abres name, sigue automáticamente la ruta guardada hasta el target. En ls -l, la fila del enlace muestra a dónde apunta, como name -> target.

SintaxisEfecto
ln -s target name-s (symbolic) crea un enlace simbólico que es un alias basado en una ruta
ls -lComprueba a dónde apunta mediante la visualización name -> target
ln target aliasCrea un enlace físico que apunta al mismo cuerpo de datos
Simbólico vs físicoSimbólico = un archivo especial que guarda la ruta del destino / Físico = un alias del mismo cuerpo de datos
Cuando se elimina el destinoSimbólico = pierde su destino y se rompe / Físico = el contenido permanece
Cómo funciona un enlace simbólico — ln -s
target.txtcontenido: "data"link.txt (archivo especial)guarda la ruta "target.txt"salidalink.txt -> target.txtsalida: "data"sigue la ruta al archivo realln -s target.txt link.txtls -lcat link.txt
ln -s crea link.txt, un archivo especial que guarda la ruta target.txt. ls -l lo muestra como link.txt -> target.txt, y cat link.txt sigue esa ruta para leer el contenido del archivo real target.txt.
printf 'data\n' > target.txt   # Crear el archivo destino
ln -s target.txt link.txt     # Crear un enlace simbólico
ls -l                         # Comprobar link.txt -> target.txt
cat link.txt                  # Muestra el contenido de target.txt

① Crea el archivo destino con printf 'data\n' > target.txt.

② Añade la opción que hace que ln cree un enlace simbólico, luego pasa el destino y el nuevo nombre en ese orden para crear link.txt.

③ Ejecuta ls -l y comprueba que el destino del enlace aparece como link.txt -> target.txt. (Cuando lo ejecutes correctamente, aparece una explicación.)

Linux console
0 / 3 completado(s)
Loading Linux Terminal...

Enlaces físicos — ln

Sin -s, ln target alias crea un enlace físico (hard link). Mientras que un enlace simbólico es un archivo especial que guarda una ruta al destino, un enlace físico es otro nombre que apunta al mismo cuerpo de datos. Al abrir cualquiera de los nombres obtienes contenido idéntico, y en ls -l un enlace físico no muestra flecha — parece un archivo común. Ten clara la distinción: simbólico = un archivo especial que guarda la ruta del destino, físico = un alias del mismo cuerpo de datos.

En qué se diferencian los enlaces simbólicos y físicos
base.txtcuerpo de datos "shared"symcontenido = ruta "base.txt"hardalias del mismo cuerpo de datossalida: "shared"lee vía la rutasalida: "shared"lee el cuerpo de datos directoln -s base.txt symln base.txt hardcat symcat hardambos leen "shared"
ln -s crea sym, que guarda una ruta al archivo real, mientras que ln crea hard, un alias del mismo cuerpo de datos. Ambos imprimen shared con cat, pero sym lee vía la ruta y hard lee el cuerpo de datos directamente.
printf 'shared\n' > base.txt   # Crear el archivo destino
ln base.txt hard.txt          # Crear un enlace físico
ls -l                         # hard.txt aparece sin flecha
cat hard.txt                  # Muestra el mismo contenido que base.txt

① Crea el archivo destino con printf 'shared\n' > base.txt.

② Usa ln sin opción, pasando el destino y el alias en ese orden, para crear un enlace físico llamado hard.txt.

③ Ejecuta ls -l y comprueba que hard.txt aparece como un archivo común, sin flecha (->).

Linux console
0 / 3 completado(s)
Loading Linux Terminal...

Qué pasa cuando eliminas el destino

Como un enlace simbólico es un archivo especial que guarda una ruta al destino, pierde aquello a lo que apunta una vez que el destino ya no está. Como un enlace físico es otro nombre que apunta al mismo cuerpo de datos, el contenido permanece incluso después de que el nombre original desaparezca. Elimina el destino y comprueba la diferencia tú mismo.

Qué le pasa a cada enlace cuando se elimina el destino
orig.txtcuerpo de datos "v"sl.txtcontenido = ruta "orig.txt"hl.txtalias del mismo cuerpo de datosfalla: enlace rotoNo such fileimprime "v"el cuerpo de datos permaneceln -s orig.txt sl.txtln orig.txt hl.txtcat sl.txtcat hl.txtdespués de rm orig.txt
Después de que rm orig.txt elimina el archivo real, sl.txt, que solo guarda una ruta, se convierte en un enlace roto, mientras que hl.txt, que comparte el cuerpo de datos, sigue imprimiendo su contenido con cat.
printf 'v\n' > orig.txt       # Crear el archivo destino
ln -s orig.txt sl.txt         # Enlace simbólico
ln orig.txt hl.txt            # Enlace físico
rm orig.txt                   # Eliminar el destino
cat sl.txt                    # Pierde su destino y falla
cat hl.txt                    # El contenido permanece y se puede mostrar

① Crea el destino con printf 'v\n' > orig.txt.

② Crea un enlace simbólico con ln -s orig.txt sl.txt y un enlace físico con ln orig.txt hl.txt.

③ Elimina el destino con rm orig.txt.

④ Ejecuta cat sl.txt y cat hl.txt y compara la diferencia en los resultados.

⑤ Ejecuta ls -l y comprueba cómo se ven los dos enlaces en ls -l después de la eliminación.

Linux console
0 / 7 completado(s)
Loading Linux Terminal...
QUIZ

Verificación de conocimientos

Responde cada pregunta una a una.

Pregunta 1¿Cómo se muestra en ls -l después de ejecutar ln -s target.txt link.txt?

Pregunta 2¿Cuál de las siguientes describe correctamente la diferencia entre los enlaces simbólicos y físicos?

Pregunta 3Después de eliminar el archivo destino con rm, ¿para cuál de los dos sigue funcionando cat?