Enlaces duros y enlaces de software de Linux explicados

¿Alguna vez ha estado familiarizado con algo, ha trabajado alrededor de él, pero no ha entendido completamente sus conceptos? Siento que esto me sucede a mí más que a la mayoría de las personas. Es un sentimiento frustrante, pero también es un sentimiento que a menudo se remedia fácilmente. A veces es suficiente que alguien explique el concepto en "inglés sencillo", es decir, en términos sencillos. Este es el propósito de este artículo. Quiero hablar de ello y en los términos más básicos posibles. Puede darse cuenta de que este concepto, que suele ser difícil para los administradores de sistemas, es bastante sencillo. Por lo menos, lo guiaré a través de la sintaxis para crear estos enlaces (que a muchas personas les cuesta recordar). Entonces vamos.

Índice

    enlaces duros

    El concepto de unión dura es el más fundamental que discutiremos hoy. Cada archivo en el sistema de archivos de Linux comienza con un solo enlace fijo. El está entre el nombre del archivo y los datos reales almacenados en el sistema de archivos. Crear un enlace duro adicional a un archivo significa varias cosas diferentes. Discutámoslo.

    Primero, crea un nuevo nombre de archivo que apunta a los mismos datos que el nombre de archivo anterior. Esto significa que los dos nombres de archivo, aunque diferentes, apuntan a datos idénticos. Por ejemplo, si creo un archivo /home/tcarrigan/demo/link_test y escribe Hola mundo en el archivo solo tengo un enlace duro entre el nombre del archivo link_test y el contenido del archivo Hola mundo.

    [[email protected] demo]$ ls -l
    total 4
    -rw-rw-r--. 1 tcarrigan tcarrigan 12 Aug 29 14:27 link_test

    Tenga en cuenta el número de enlaces aquí (1).

    Luego creo un nuevo enlace duro en /tmp exactamente en el mismo archivo usando el siguiente comando:

    [[email protected] demo]$ ln link_test /tmp/link_new

    la sintaxis es ln (original file path) (new file path).

    Ahora, cuando miro mi sistema de archivos, veo los dos enlaces duros.

    [[email protected] demo]$ ls -l link_test /tmp/link_new 
    -rw-rw-r--. 2 tcarrigan tcarrigan 12 Aug 29 14:27 link_test
    -rw-rw-r--. 2 tcarrigan tcarrigan 12 Aug 29 14:27 /tmp/link_new

    La principal diferencia aquí es el nombre del archivo. También se ha cambiado el número de enlaces (2). Más particularmente, si yo cat el contenido del nuevo archivo, muestra los datos originales.

    [[email protected] demo]$ cat /tmp/link_new 
    hello world

    Cuando se realizan cambios en un nombre de archivo, el otro refleja esos cambios. Los permisos, la cantidad de enlaces, la propiedad, las marcas de tiempo y el contenido del archivo son exactamente los mismos. Si se elimina el archivo original, los datos aún existen en el vínculo físico secundario. Los datos no se eliminan de su disco hasta que se hayan eliminado todos los enlaces a los datos. Si encuentra dos archivos con propiedades idénticas pero no está seguro de si están vinculados, use el ls -i Comando para mostrar el número. Los archivos vinculados entre sí comparten el mismo número de inodo.

    [[email protected] demo]$ ls -li link_test /tmp/link_new 
    2730074 -rw-rw-r--. 2 tcarrigan tcarrigan 12 Aug 29 14:27 link_test
    2730074 -rw-rw-r--. 2 tcarrigan tcarrigan 12 Aug 29 14:27 /tmp/link_new

    El número de inodo compartido es 2730074, lo que significa que estos archivos son datos idénticos.

    Si desea obtener más información sobre los inodos, lea mi artículo completo aquí.

    Límites estrictos

    Si bien es útil, existen algunos límites en lo que pueden hacer los enlaces duros. Para empezar, solo se pueden crear para archivos normales (no directorios ni archivos especiales). Además, un vínculo físico no puede abarcar varios sistemas de archivos. Solo funcionan cuando el nuevo vínculo físico existe en el mismo sistema de archivos que el original.

    Enlaces simbólicos

    Los enlaces simbólicos, comúnmente llamados, conectan archivos regulares y no regulares. También pueden abarcar varios sistemas de archivos. Por definición, un enlace simbólico no es un archivo estándar, sino un archivo especial que apunta a un archivo existente. Veamos cómo crear un enlace simbólico. Yo uso el ln -s comando y la siguiente sintaxis:

    ln -s (file path you want to point to) (new file path)

    En el siguiente ejemplo, creo un nuevo archivo en /home/tcarrigan/demo/soft_link_test con el contenido del archivo dulce hola a todos. Luego creo un enlace simbólico a este archivo en la dirección /tmp/soft_link_new:

    [[email protected] demo]$ ln -s /home/tcarrigan/demo/soft_link_test /tmp/soft_link_new
    [[email protected] demo]$ ls -l soft_link_test /tmp/soft_link_new 
    -rw-rw-r--. 1 tcarrigan tcarrigan 17 Aug 30 11:59 soft_link_test
    lrwxrwxrwx. 1 tcarrigan tcarrigan 35 Aug 30 12:09 /tmp/soft_link_new -> /home/tcarrigan/demo/soft_link_test

    Darse cuenta de /tmp/soft_link_new es solo un enlace simbólico, que apunta al original /home/tcarrigan/demo/soft_link_test. Si yo cat el contenido de /tmp/soft_link_new, debería ver el dulce hola a todos texto.

    [[email protected] demo]$ cat /tmp/soft_link_new 
    soft Hello world

    Todo esto suena bien, pero existen algunos inconvenientes al usar un enlace suave. La mayor preocupación es la pérdida de datos y la confusión de datos. Si se elimina el archivo original, el enlace suave se rompe. Esta situación se llama. Si tuviera que crear un nuevo archivo con el mismo nombre que el original, su enlace de software suspendido ya no se suspenderá en absoluto. Apunta al archivo recién creado, ya sea que esa sea su intención o no, así que téngalo en cuenta.

    ¿Duro o suave?

    No hay una respuesta clara aquí. El mejor vínculo es el tipo que coincide con su situación particular. Si bien estos conceptos pueden ser difíciles de recordar, la sintaxis es bastante sencilla, ¡así que eso es una ventaja! Para mantener los dos fácilmente separados en su mente, los dejo con esto:

    • Un enlace fijo siempre apunta un nombre de archivo a los datos en un dispositivo de almacenamiento.
    • Un enlace simbólico siempre apunta un nombre de archivo a otro nombre de archivo, que luego apunta a información sobre un dispositivo de almacenamiento.

    ¡Espero que esto lo ayude a mantenerlos separados mientras navega por los tipos de enlaces necesarios para lograr sus objetivos diarios!

    Artículos de interés

    Subir