LINUX

Hard Link vs Soft Link en Linux con ejemplos

Enlace duro actúa como una copia espejo del archivo original. Estos enlaces comparten los mismos inodos. Los cambios realizados en el archivo original o vinculado se reflejarán en el otro. Cuando elimine Hard Link, no le ocurrirá nada al otro archivo. Los enlaces duros no pueden cruzar sistemas de archivos.

Dónde Enlace suave es un enlace real al archivo original, también conocido como enlace simbólico o enlaces simbólicos. Estos enlaces tendrán un valor de inodos diferente. El vínculo suave apunta al archivo original, por lo que si se elimina el archivo original, el vínculo suave falla. Si elimina el Soft Link, no pasará nada con el archivo. La razón de esto es que el inodo del archivo o directorio real es diferente de los inodos del archivo creado por el «enlace suave». Los enlaces blandos pueden cruzar sistemas de archivos.

A continuación se muestra una imagen que muestra los puntos que diferencian entre softlink y hardlink.

softlink vs hardlink

¿Qué son los enlaces duros?

1. Los enlaces duros tienen el mismo número de inodos.
2. El comando ls -l muestra todos los enlaces con la columna de enlace que muestra el número de enlaces.
3. Los enlaces tienen contenido de archivo real
4. Eliminar cualquier enlace, solo reduce el número de enlaces pero no afecta a los otros enlaces.
5. No puede crear un vínculo físico para un directorio.
6. Incluso si se elimina el archivo original, el enlace seguirá mostrando el contenido del archivo.

¿Qué son los enlaces suaves?

1. Los enlaces blandos tienen diferentes números de inodos.
2. El comando ls -l muestra todos los enlaces con el valor de la segunda columna 1 y el enlace apunta al archivo original.
3. Soft Link contiene la ruta del archivo original y no el contenido.
4. La eliminación del enlace flexible no afecta nada, pero cuando se elimina el archivo original, el enlace se convierte en un enlace «colgante» que apunta a un archivo inexistente.
5. Un Soft Link puede enlazar a un directorio.

Ejemplo: enlaces físicos

Primero creemos un directorio «Test» y dentro creamos un nuevo archivo «sample1».

$ mkdir Test
$ cd Test
$ touch sample1

Ahora, cree un enlace fijo a sample1. Nombra el enlace duro sample2.

$ ln sample1 sample2

Muestre inodos para ambos archivos usando i argumento del comando ls.

$ ls -il sample1 sample2

Esto es lo que obtendrás como salida.

1482256 -rw-r--r-- 2 bruno bruno 21 May 5 15:55 sample1
1482256 -rw-r--r-- 2 bruno bruno 21 May 5 15:55 sample2

En la salida, puede observar que tanto sample1 como sample2 tienen el mismo número de inodo (1482256). Además, ambos archivos tienen los mismos permisos de archivo y el mismo tamaño.

Ahora retire la muestra original1

$ rm sample1

Después de eliminar Hard Link, solo eche un vistazo al contenido del «link» sample2.

$ cat sample2

Aún podrá ver el contenido del archivo.

Ejemplo: enlace suave (enlaces simbólicos)

Creemos un enlace suave para el archivo ‘sample2’ usando el comando ln.

$ ln -s sample2 sample3

Mostrar inodos para ambos usando i argumento del comando ls.

$ ls -il sample2 sample3

Esto es lo que obtendrás:

1482256 -rw-r--r-- 1 bruno bruno 21 May 5 15:55 sample2
1482226 lrwxrwxrwx 1 bruno bruno 5 May 5 16:22 sample3 -> sample2

En la salida, puede notar que el los inodos son diferentes y el enlace simbólico tiene una «l» antes de rwxrwxrwx. Los permisos son diferentes para el enlace y el archivo original porque es solo un enlace simbólico.

Ahora enumere el contenido:

$ cat sample2
$ cat sample3

Ahora quita el archivo original

$ rm sample2

Y luego verifique el directorio de prueba:

$ ls

Seguirá mostrando el enlace simbólico sample3, pero si intenta enumerar el contenido, le dirá que no existe tal archivo o directorio.

$ cat sample3

Ahora conoce algunas de las diferencias clave entre los enlaces duros y los enlaces flexibles que le facilitarán el acceso a los archivos y la ejecución de programas.

Leer también:

Publicaciones relacionadas

Deja una respuesta

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

Botón volver arriba
Cerrar