Enlaces fijos y enlaces suaves son conceptos importantes para comprender cuando se trabaja en un entorno similar a Unix. En este artículo, discutiremos qué es el enlace duro y el enlace suave y cómo crearlos en Linux.
Linux trata todo como un archivo. Ya sea que se trate de un dispositivo de bloque, un dispositivo de caracteres, un socket o una canalización con nombre, Linux los tratará como un archivo. Enlaces fijos y enlaces blandos también son un tipo de archivo que en realidad se crea en referencia a otro archivo.
¿Qué es Hardlink en Linux?
Enlace fijo es como un clon del archivo original. Todos los enlaces duros comparten el mismo número de inodo y eliminar el archivo original o cualquier otro archivo con enlace duro no tendrá ningún efecto en otros archivos y, aún así, podrá leer el contenido del archivo.
NOTA :No se pueden crear enlaces duros para directorios.
Cómo crear enlaces físicos en Linux
Veamos cómo trabajar con enlaces duros. Estoy creando un archivo llamado file1.txt y escribirle algunos contenidos.
$ cat file1.txt
Ahora ejecute el comando ls con -i
indicador para verificar el número de inodo de file1.txt y número de enlaces.
$ ls -li file1.txt
Ahora crea un nuevo enlace duro y ejecuta el mismo comando ls para comprobar el número de inodo. Verá que ambos archivos tienen los mismos números de inodo.
$ ln <source-file> <destination-file> $ ln file1.txt file2.txt
Ahora crearé un nuevo archivo de vínculo físico desde file2.txt que ya se creó a partir de file1.txt . Compruebe el recuento de enlaces y se actualiza a 3 en todos los archivos.
$ ls -li file2.txt /home/karthick/file3.txt
Cómo eliminar enlaces duros en Linux
Ahora, si elimina cualquiera de los archivos con enlaces fijos, el recuento de enlaces se actualizará en consecuencia en todos los archivos y aún podrá acceder al contenido de los archivos.
$ rm file1.txt
Para eliminar completamente todos los archivos con enlaces fijos en todo el sistema de archivos, puede usar el comando de búsqueda para buscar los archivos con el mismo número de inodo y eliminarlos.
$ find <directory> -inum <inode-number> # SYNTAX $ find / -inum 415314 # Finding all files with Inode 51425368
Para eliminar los archivos, puede agregar un ejecutivo comando para buscar comando.
$ sudo find / -inum415314 -exec rm -f {} \;
NOTA :cuando ejecuta buscar comando y si desea escanear todos los directorios en el sistema de archivos, es mejor usar sudo .
¿Qué son los enlaces suaves en Linux?
Enlaces suaves a veces llamados enlaces simbólicos o enlaces simbólicos. Cuando crea un enlace suave, se creará un nuevo archivo y ese archivo apuntará al archivo principal. Piense en esto como un acceso directo que crea para archivos y carpetas. Un nuevo archivo tendrá un Inodo diferente en comparación con el archivo principal.
$ cat > slink.txt $ ls -li slink.txt
Cómo crear enlaces blandos en Linux
Ahora crea un nuevo enlace suave y ejecuta el mismo comando ls para comprobar el número de inodo. Verá que ambos archivos tienen los mismos números de inodo. Además, eche un vistazo al número de enlaces de cada archivo.
$ ln -s <source> <destination> # SYNTAX $ ln -s file1.txt file2.txt
Eche un vistazo al recuento de enlaces de la imagen de arriba, siempre será 1 para enlaces blandos ya que todos los archivos obtienen un número de Inodo separado. Ahora, si elimina el enlace suave, no tendrá ningún efecto en el archivo original.
# grep ^ ./slink* # Display the contents of file1, file2 # rm slinked_linked.txt
Si elimina el archivo original, el archivo vinculado generará un error cuando intente acceder a él.
$ ls -li $ rm slink.txt $ ls -li $ cat slink_linked.txt
A veces, puede eliminar el archivo principal pero olvidar eliminar todos los archivos vinculados. Puede verificar y limpiar todos los enlaces blandos huérfanos ejecutando el siguiente comando. Buscar El comando intentará encontrar todos los enlaces huérfanos del /home/ directorio y -delete
eliminará los enlaces.
# find -L /home/ -type l -delete
Eso es todo por este artículo. Nos gustaría escuchar sus valiosos comentarios o cualquier sugerencia que pueda mejorar los artículos.