Diferencia entre enlaces blandos y enlaces duros

Diferencia entre enlaces blandos y enlaces duros

En Linux, los enlaces a los archivos se crean de la misma manera que las referencias a los archivos se crean en los lenguajes de programación más comunes. Estos enlaces se dividen en dos categorías: enlaces duros y suaves.

Un enlace duro es efectivamente una réplica idéntica del archivo, por lo tanto, el enlace duro y el archivo real tendrán el mismo inodo.

Un enlace suave, también conocido como un enlace simbólico, funciona de manera similar a un atajo o puntero a un archivo. No es una réplica exacta del archivo, sino más bien un puntero al original.

Los valores de inodo de un enlace suave a un archivo y el archivo real diferirán. Además, no podrá acceder al contenido del enlace suave si elimina el archivo real. En este artículo, aprenderemos más sobre enlaces suaves y enlaces duros.

Comprender la diferencia entre enlaces duros y enlaces suaves

¿Qué son los enlaces suaves en Linux??

Tenemos una función de acceso directo de archivo en Windows que se utiliza para crear un acceso directo para los archivos. Un enlace suave es similar a un atasco de archivo. Cada archivo unido suave tiene su propio valor de inodo, que se refiere al archivo original. Cualquier cambio en la información en un archivo se refleja en el otro. Puede conectar enlaces suaves a través de diferentes sistemas de archivos, pero si el archivo fuente se elimina o se transfiere, el archivo de enlace suave no funcionará correctamente. Este enlace se llama un enlace colgante. Eliminar un enlace suave no tiene efecto, pero si elimina el archivo original, puede causar que el enlace dejará de funcionar.

Se puede usar un enlace suave para señalar un directorio y solo conserva la ruta al archivo original, no su contenido. El tamaño del enlace suave será igual al archivo para el cual se forma el enlace suave. Por ejemplo, si el archivo theAbcd.txt es 5 kb, el enlace suave de este archivo también será de 5 kb.

Un enlace suave:

  • puede atravesar el sistema de archivos,
  • Permitirle conectarse a través de directorios,
  • tiene diferentes permisos de archivo e inodo que el archivo original,
  • Los permisos no se modificarán,
  • y solo tiene la ruta del archivo original, no su contenido

¿Qué son los enlaces duros en Linux??

Un enlace duro en Linux es equivalente a un archivo guardado en un disco duro, y realmente se refiere o enlaces a una ubicación en un disco duro. Un enlace duro es esencialmente una imagen espejo del archivo original. La diferencia entre un enlace duro y un enlace suave es que la eliminación del archivo fuente no tiene ningún efecto en un enlace duro, pero hace que un enlace suave sea inútil. Por lo tanto, el beneficio más significativo de hacer un enlace difícil es que aún puede acceder al contenido del archivo, incluso si lo borra involuntariamente.

Un enlace duro:

  • No se puede atravesar los bordes del sistema de archivos,
  • No se puede conectar directorios,
  • tiene los mismos permisos de archivo y el número de inodo que el archivo original
  • Si alteramos los permisos del archivo fuente, los permisos también se cambiarán para el enlace duro
  • Contiene el contenido del archivo original, incluso si el archivo original está destruido, puede acceder al contenido.

Diferencia entre enlaces blandos y enlaces duros

ParámetroEnlace suaveEnlace duro
Número de inodoNúmero de inodo diferente al archivo original.El mismo número de inodo que el archivo original.
DirectorioLos enlaces suaves pueden enlaces directoriosLos enlaces duros no pueden vincular directorios.
El archivo original eliminaEl enlace no funcionará si el archivo original se elimina ya que no accede a los datos en el archivo original. No es más que un atajo al archivo original.El enlace duro continuará funcionando incluso si el archivo original se elimina, ya que accede a los mismos datos que el original.
VelocidadLos enlaces suaves son más lentosLos enlaces duros son más rápidos que los enlaces blandos.
Consumo de memoriaMásMenos

Verifique la siguiente captura de pantalla de las diferencias de inodoro entre los archivos de enlace duro y el enlace suave:

Cambios de inodo en enlace suave y enlace duro

Cómo crear enlaces duros y enlaces suaves?

Entendamos las diferencias con una práctica rápida. Cree un archivo de texto simple en un directorio y nombre lo nombre11.TXT. Crearemos un enlace suave y un enlace duro para este archivo.

Creando un enlace duro:

  1. Para crear un enlace duro, usamos el "Ln" dominio. Entonces, escriba el siguiente comando en la ventana de su terminal:
    Archivo LN1.TXT Hardlink.TXT  
  2. Así que aquí estamos usando el comando 'in' para crear un enlace duro, luego estamos dando el nombre del archivo para el cual necesitamos el enlace duro, y luego estamos nombrando el enlace duro que es un enlace duro.TXT.

    Escriba el siguiente comando después de ejecutar el comando anterior:

    LS -L  
  3. Esto le mostrará que hay dos archivos en el directorio - File1.txt y enlace duro.TXT. Ahora veremos si nuestro archivo de enlace duro funciona o no. Abre el enlace duro.archivo txt en un editor de texto:
    Nano Hardlink.TXT  
  4. Cambiar el contenido del archivo y escribir algo diferente. Luego abra el archivo original:
    Archivo CAT1.TXT  
  5. Verá que los cambios realizados en los archivos de enlace duro se reflejan en el archivo original. Ahora eliminemos el archivo original y vea si el archivo de enlace duro seguirá funcionando o no:
    archivo rm1.TXT  
  6. Ejecute el comando "LS" y verá que solo hay un archivo en el directorio HardLink.TXT. Abra el archivo y verá que el archivo todavía tiene el mismo contenido.

Creación de enlaces suaves:

  1. Para demostrar, Agai he creado archivo.txt en el directorio actual. Crearemos un enlace suave para el mismo. Ejecute el siguiente comando para crear un enlace suave:
    LN -S FILE1.txt softlink.TXT  
  2. Ejecutar el LS -L comando y verá que hay dos archivos diferentes en el directorio. Ahora si escribes
    Cat Softlink.TXT  
  3. Verá el contenido de File1.txt como el enlace suave apunta a este archivo. Y si elimina el archivo1.archivo txt:
    archivo rm1.TXT  
  4. Nuevamente corre el LS -L comando y verá un error. Es porque el archivo original se elimina y el enlace suave no puede funcionar sin eso. Y si escribimos:
    Cat Softlink.TXT  

    Verá que no hay dicho archivo o directorio

Terminando

Un enlace duro ocupa menos espacio y funciona más rápido, pero las modificaciones realizadas se reflejan en el archivo original. Mientras que los enlaces suaves necesitan más espacio, cualquier cambio en el enlace suave no tiene ningún efecto en el archivo original. A diferencia de los enlaces duros, se permiten conexiones suaves a directorios.