En su sistema Linux en funcionamiento, supongamos 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 usar un enlace simbólico (también conocido como enlace suave). También hay otra forma de enlace conocida como enlace duro. En este artículo, explicaremos las diferencias entre los enlaces blandos y duros y veremos cuál debe 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 suave no le importa si el archivo o la carpeta en la ruta del archivo realmente existe. Si el archivo o la carpeta no existe, solo resultará en un enlace simbólico roto. Puede editar o eliminar el enlace simbólico, y no afectará el archivo de destino.
Por otro lado, un vínculo fijo tiene el efecto de dar 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 suave es solo una referencia a la ruta del archivo de destino, mientras que un enlace duro es un enlace directo a los datos del archivo de destino.
A continuación, ilustraremos cómo funcionan los enlaces blandos y duros.
Enlaces blandos en acción
Digamos que tenemos un archivo llamado “first_file.txt” que tiene cuatro líneas de texto dentro.
Crearemos un enlace suave en nuestro directorio de inicio.
ln -s first_file.txt ~/sl-firstfile.txt
En el entorno de escritorio GNOME, se puede crear un enlace suave para un archivo simplemente haciendo clic con el botón derecho en el archivo y seleccionando «Crear enlace». Se crea un enlace suave donde el nombre es similar a «Enlace a
Si intentamos ver el contenido de «sl-firstfile.txt», podemos ver que es lo mismo que «first_file.txt».
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.
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.
Comportamiento de eliminación de enlaces blandos
Cuando se elimine el archivo de destino, el enlace suave seguirá existiendo.
Sin embargo, se ha convertido en un enlace «colgante» o «roto» y es inútil.
Ahora, si crea otro archivo con el mismo nombre, «first_file.txt», el enlace suave volverá a estar activo.
Nota: en caso de que encuentre enlaces blandos y desee encontrar la ruta absoluta del archivo para el que se creó el enlace, simplemente use el readlink
comando como se muestra a continuación.
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:
ln first_file.txt hl-first-file.txt
Nota: los métodos para crear el enlace blando y duro usan el ln
dominio. La única diferencia es el -s
bandera que denota un enlace simbólico.
Otra forma de crear un enlace duro es usando el link
dominio.
link hl-firstfile.txt hl2-firstfile.txt
Una comprobación de ambos archivos muestra que su contenido es el mismo.
En la GUI, ambos archivos aparecen como entidades distintas. No hay indicios sobre la existencia de un enlace duro.
Intentemos agregar una nueva línea al archivo de enlace duro «hl-firstfile.txt».
echo "hello" >> hl-first-file.txt
El cambio en los datos se puede ver en ambos archivos.
Cuando se crea un vínculo fijo, 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 suaves y enlaces duros, sería una buena idea usar la misma extensión que el archivo para el que se está creando el enlace.
Comportamiento de eliminación de enlaces duros
Para enlaces duros, la eliminación del archivo original o del enlace duro 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.
¿Cuándo serían útiles los enlaces blandos?
Notamos que los enlaces blandos aparecen como accesos directos para 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 duros?
Hemos visto que una vez que se ha creado un vínculo físico para un archivo, cualquier cambio en el archivo o el vínculo físico se refleja en ambos.
Digamos que tiene un servidor de respaldo. Se utiliza 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 enlace duro 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 de la computadora se reflejarán automáticamente en el archivo vinculado fijo correspondiente en el servidor, incluso si los archivos experimentan un cambio de nombre.
Conclusión
Tanto los enlaces suaves como los duros tienen sus propios usos y deben usarse en diferentes situaciones. Comprender sus diferencias te permitirá tomar mejores decisiones a la hora de crear enlaces. También se pueden crear enlaces suaves y enlaces duros para directorios. Si bien los enlaces suaves se pueden crear en todos los sistemas de archivos, los enlaces duros solo se pueden crear dentro del mismo sistema de archivos.
Danos tu opinión