Pregunta 1¿Cómo se muestra en ls -l después de ejecutar ln -s target.txt link.txt?
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.
| Sintaxis | Efecto |
|---|---|
ln -s target name | -s (symbolic) crea un enlace simbólico que es un alias basado en una ruta |
ls -l | Comprueba a dónde apunta mediante la visualización name -> target |
ln target alias | Crea un enlace físico que apunta al mismo cuerpo de datos |
| Simbólico vs físico | Simbólico = un archivo especial que guarda la ruta del destino / Físico = un alias del mismo cuerpo de datos |
| Cuando se elimina el destino | Simbólico = pierde su destino y se rompe / Físico = el contenido permanece |
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
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.
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
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.
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
Verificación de conocimientos
Responde cada pregunta una a una.
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?