GNU/Linux >> Tutoriales Linux >  >> Linux

Explicación de Soft Link y Hard Link en Linux con ejemplos

Un simbólico o enlace suave es un vínculo real al archivo original, mientras que un vínculo físico es una copia espejo del archivo original. Si elimina el archivo original, el enlace suave no tiene ningún valor, porque apunta a un archivo que no existe.

Pero en el caso del enlace duro, es completamente opuesto. Incluso si elimina el archivo original, el enlace duro aún tendrá los datos del archivo original. Porque el enlace duro actúa como una copia espejo del archivo original.

En pocas palabras, un vínculo suave

  • puede cruzar el sistema de archivos,
  • le permite enlazar entre directorios,
  • tiene un número de inodo y permisos de archivo diferentes a los del archivo original,
  • los permisos no se actualizarán,
  • solo tiene la ruta del archivo original, no el contenido.

Un enlace duro

  • no puede cruzar los límites del sistema de archivos (es decir, un enlace fijo solo puede funcionar en el mismo sistema de archivos),
  • no puede vincular directorios,
  • tiene el mismo número de inodo y permisos que el archivo original,
  • los permisos se actualizarán si cambiamos los permisos del archivo fuente,
  • tiene el contenido real del archivo original, por lo que aún puede verlo, incluso si el archivo original se movió o eliminó.

¿Aún no lo entiendes? Bueno, déjame mostrarte algunos ejemplos prácticos.

Cómo crear un enlace suave o un enlace simbólico

Vamos a crear un directorio vacío llamado "test" .

$ mkdir test

Cambiar a la "test" directorio:

$ cd test

Ahora, crea un nuevo archivo llamado source.file con algunos datos como se muestra a continuación.

$ echo "Welcome to OSTechNix" >source.file

Veamos los datos del archivo fuente.

$ cat source.file
Welcome to OSTechNix

Bueno, el source.file ha sido creado.

Ahora, cree un enlace simbólico o suave al source.file .

Para hacerlo, ejecute:

$ ln -s source.file softlink.file

Comparemos los datos de ambos source.file y softlink.file .

$ cat source.file
Welcome to OSTechNix
$ cat softlink.file 
Welcome to OSTechNix

Como puede ver en el resultado anterior, softlink.file muestra los mismos datos que source.file .

Revisemos los inodos y permisos de softlink.file y source.file .

$ ls -lia

Salida de muestra:

total 12
11665675 drwxrwxr-x  2 sk sk 4096 Oct 17 11:39 .
 4325378 drwxr-xr-x 37 sk sk 4096 Oct 17 11:39 ..
11665731 lrwxrwxrwx  1 sk sk   11 Oct 17 11:39 softlink.file -> source.file
11665692 -rw-rw-r--  1 sk sk   21 Oct 17 11:39 source.file

Como vemos en la captura de pantalla anterior, el número de inodo (11665731 vs 11665692 ) y permisos de archivo (lrwxrwxrwx vs -rw-r--r-- ) son diferentes , aunque el softlink.file tiene el mismo contenido que source.file . Por lo tanto, se prueba que el enlace suave no comparte el mismo número de inodo y permisos del archivo original.

Ahora, elimine el archivo original (es decir, source.file ) y ver qué sucede.

$ rm source.file

Verifique el contenido del softlink.file usando el comando:

$ cat softlink.file

Salida de muestra:

cat: softlink.file: No such file or directory

Como puede ver arriba, no existe tal archivo o directorio llamado softlink.file después de que eliminamos el archivo original (es decir, source.file ).

Entonces, ahora entendemos que el enlace suave es solo un enlace que apunta al archivo original. El enlace suave es como un acceso directo a un archivo. Si elimina el archivo, el acceso directo es inútil.

Como ya sabe, si elimina el enlace suave, el archivo original seguirá estando disponible.

Lectura sugerida:

  • Cómo listar enlaces simbólicos en Linux
  • Cómo encontrar enlaces simbólicos rotos y eliminarlos en Linux

Cree un archivo llamado source.file con algunos contenidos como se muestra a continuación.

$ echo "Welcome to OSTechNix" >source.file

Verifiquemos el contenido del archivo.

$ cat source.file
Welcome to OSTechNix

El source.file se ha creado ahora.

Ahora, vamos a crear el enlace duro al source.file como se muestra a continuación.

$ ln source.file hardlink.file

Comprueba el contenido de hardlink.file :

$ cat hardlink.file
Welcome to OSTechNix

Ves el hardlink.file muestra los mismos datos que source.file.

Revisemos el inodo y los permisos de hardlink.file y source.file .

$ ls -lia

Salida de muestra:

total 16
11665675 drwxrwxr-x 2 sk sk 4096 Oct 17 11:58 .
4325378 drwxr-xr-x 37 sk sk 4096 Oct 17 11:39 ..
11665692 -rw-rw-r-- 2 sk sk 21 Oct 17 11:57 hardlink.file
11665692 -rw-rw-r-- 2 sk sk 21 Oct 17 11:57 source.file

Ahora, vemos que tanto hardlink.file y source.file tienen el mismo número de inodes (11665692 ) y permisos de archivo (-rw-r--r-- ) . Por lo tanto, se prueba que el archivo de enlace duro comparte el mismo número de inodos y permisos del archivo original.

Aviso: Si cambiamos los permisos en source.file , se aplicará el mismo permiso al hardlink.file también.

Ahora, elimine el archivo original (es decir, source.file ) y ver qué sucede.

$ rm source.file

Comprobar el contenido de hardlink.file usando el comando:

$ cat hardlink.file

Salida de muestra:

Como ve arriba, incluso si eliminé el archivo fuente, puedo ver el contenido del hardlink.file . Por lo tanto, se prueba que el enlace duro comparte el mismo número de inodo, los permisos y los datos del archivo original.

Entonces, ¿cuál es la diferencia entre el enlace duro y el archivo copiado normal?

Quizás se pregunte por qué crearíamos un enlace duro mientras podemos copiar y pegar fácilmente el archivo original. Crear un vínculo físico a un archivo es diferente a copiarlo.

Si copia un archivo, simplemente duplicará el contenido. Entonces, si modifica el contenido de un archivo (ya sea original o enlace duro), no tiene efecto en el otro.

Sin embargo, si crea un enlace fijo a un archivo y cambia el contenido de cualquiera de los archivos, el cambio se verá en ambos.

Echemos un vistazo al archivo fuente.

$ cat source.file 
Welcome to OSTechNix

El archivo fuente tiene una sola línea que dice:Bienvenido a OSTechNix.

Agregue una nueva línea, por ejemplo, "Bienvenido a Linux" en source.file o hardlink.file .

$ echo "Welcome to Linux" >>source.file

Ahora verifique el contenido de ambos archivos.

$ cat hardlink.file 
Welcome to OSTechNix
Welcome to Linux
$ cat source.file 
Welcome to OSTechNix
Welcome to Linux

¿Ver? Los cambios que acabamos de hacer en source.file se actualizan en ambos archivos. Significado:ambos archivos (fuente y enlace duro) se sincronizan.

Cualquier cambio que haga en cualquier archivo se reflejará en otro. Si normalmente copia/pega el archivo, no verá ningún cambio nuevo en otro archivo.

Para obtener más detalles, consulte las páginas man.

$ man ln

Conclusión

En esta guía, hemos discutido qué es un enlace suave y un enlace duro en Linux, cómo crear un enlace suave y un enlace duro con comandos de ejemplo y, finalmente, explicamos la diferencia entre un enlace duro y un archivo copiado normal.

Espero que tenga una idea básica de cómo usar un enlace simbólico o suave y un enlace duro en Linux.


Linux
  1. Ordenar comando en Linux con ejemplos

  2. Enlaces duros y enlaces blandos en Linux explicados

  3. Cómo crear enlaces blandos y duros en Linux

  4. ¿Qué son los enlaces blandos y los enlaces duros en el sistema de archivos de Linux?

  5. Diferencia entre enlaces blandos y enlaces duros en Linux

El comando ln en Linux:crear enlaces blandos y duros

Uso del comando Linux mv con ejemplos

Comando de montaje de Linux con ejemplos

Comando gawk de Linux con ejemplos

Comando make de Linux con ejemplos

Enlaces duros y enlaces blandos en Linux:todo lo que necesita saber