Comprender las diferencias entre enlaces duros y blandos en Linux

En su sistema Linux en funcionamiento, digamos que tiene un archivo anidado en varias capas de directorios. Para acceder fácilmente a ese archivo, desea crear un acceso directo para ese archivo en su escritorio. Es posible utilizar un enlace simbólico (también conocido como enlace suave). También existe otra forma de enlace conocida como enlace duro. En este artículo explicaremos las diferencias entre enlaces duros y blandos y veremos cuál debería usar.

Enlaces blandos vs duros

Un enlace suave, o enlace simbólico, es solo un enlace simbólico. Es simplemente un puntero a la ruta del archivo de destino. A un enlace flexible no le importa si el archivo o carpeta en la ruta de archivo realmente existe. Si el archivo o carpeta no existe, solo resultará en un enlace simbólico roto. Puede editar o eliminar el enlace simbólico, y no afectará al archivo de destino.

Por otro lado, un vínculo físico tiene el efecto de darle al archivo de destino un nombre adicional. Cuando edita el contenido de un archivo, también modificará el contenido del otro archivo. En resumen, un enlace flexible es solo una referencia a la ruta del archivo de destino, mientras que un enlace físico es un enlace directo a los datos del archivo de destino.

A continuación, ilustraremos cómo funcionan los enlaces duros y blandos.

Enlaces blandos en acción

Digamos que tenemos un archivo llamado “first_file.txt” que tiene cuatro líneas de texto dentro.

Vista de archivo de enlace

Crearemos un enlace suave en nuestro directorio de inicio.

En el entorno de escritorio GNOME, se puede crear un enlace flexible para un archivo simplemente haciendo clic derecho en el archivo y seleccionando “Crear enlace”. Se crea un enlace suave donde el nombre es similar a “Enlace a .txt”.

Enlace Sl Guicreate

Si intentamos ver el contenido de “sl-firstfile.txt”, podemos ver que es lo mismo que “first_file.txt”.

Link Sl View

Si echamos un vistazo a estos dos archivos en el Administrador de archivos, el enlace suave aparece como un acceso directo al archivo original. La flecha negra en el icono del archivo indica esto.

Enlace Slfirst

Cuando intentamos ver la lista del directorio actual usando el comando ls -l, puede ver dónde apunta el enlace suave al archivo de destino. El primer carácter en la cadena de permiso para “sl-firstfile.txt” es “l”, lo que significa que esta entrada es para un enlace.

Enlace Slsecond

Comportamiento de eliminación de enlaces suaves

Cuando se elimina el archivo de destino, el enlace flexible seguirá estando disponible.

Enlace Sl Delorig

Sin embargo, se ha convertido en un enlace “colgante” o “roto” y es inútil.

Enlace Delview

Ahora, si crea otro archivo con el mismo nombre, “first_file.txt”, el enlace flexible se activará nuevamente.

Nota: en caso de que encuentre enlaces suaves y desee encontrar la ruta absoluta del archivo para el que se ha creado el enlace, simplemente utilice el readlink comando como se muestra a continuación.

Enlace Readlink

La salida de este comando será la ruta absoluta del archivo original.

Enlaces duros en acción

Ahora crearemos un enlace duro para el mismo archivo en nuestro directorio de inicio. Esto se puede hacer con el siguiente comando:

Nota: los métodos para crear el enlace suave y duro utilizan el ln mando. La única diferencia es la -s bandera que denota un enlace simbólico.

Otra forma de crear un vínculo físico es utilizando el link mando.

Una verificación de ambos archivos muestra que su contenido es el mismo.

Enlace Firstview
Enlace Hl Secondview

En la GUI, ambos archivos aparecen como entidades distintas. No hay indicios de la existencia de un vínculo físico.

Enlace Hlview

Intentemos agregar una nueva línea al archivo de vínculo físico “hl-firstfile.txt”.

El cambio en los datos se puede ver en ambos archivos.

Enlace Enlace Hlappview2
Enlace Hl Appview1

Cuando se crea un vínculo físico, es como si existieran dos archivos diferentes, pero sus datos están vinculados. Un cambio en uno se refleja en el otro.

Consejo rapido: al crear enlaces flexibles y enlaces físicos, sería una buena idea utilizar la misma extensión que el archivo para el que se está creando el enlace.

Comportamiento de eliminación de enlaces físicos

Para los enlaces físicos, la eliminación del archivo original o del enlace físico no es motivo de preocupación. Los datos que se almacenaron inicialmente en el archivo aún son accesibles a través del enlace físico.

Enlace Hl Del
Enlace Hl Delview

¿Cuándo serían útiles los enlaces blandos?

Notamos que los enlaces suaves aparecen como accesos directos a un archivo. Cuando tenemos un archivo dentro de varias capas de directorios y deseamos almacenarlo en una ubicación de fácil acceso, una buena opción sería simplemente crear un enlace corto para él.

¿Cuándo serían útiles los enlaces físicos?

Hemos visto que una vez que se ha creado un vínculo físico para un archivo, cualquier cambio en el archivo o en el vínculo físico se refleja en ambos.

Digamos que tiene un servidor de respaldo. Se está utilizando un mecanismo de copia de seguridad incremental en el que solo se reflejan los cambios en los archivos / carpetas desde la última copia de seguridad. Puede crear un vínculo físico entre un archivo en el servidor y la copia correspondiente en la computadora. Cuando se realiza la copia de seguridad, los cambios en el archivo en la computadora se reflejarán automáticamente en el archivo vinculado en el servidor correspondiente, incluso si los archivos sufren un cambio de nombre.

Conclusión

Tanto los enlaces blandos como los físicos tienen sus propios usos y deben utilizarse en diferentes situaciones. Comprender sus diferencias le permite tomar mejores decisiones al crear enlaces. También se pueden crear enlaces flexibles y enlaces físicos para directorios. Si bien los enlaces suaves se pueden crear en los sistemas de archivos, los enlaces físicos solo se pueden crear dentro del mismo sistema de archivos.

¿Es útil este artículo?

¡Ayúdanos a difundirlo!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *