GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo trabajar con enlaces duros y suaves en Linux

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.


Linux
  1. Cómo manipular nombres de archivos que tienen espacios y caracteres especiales en Linux

  2. Cómo usar los comandos 'cat' y 'tac' con ejemplos en Linux

  3. Cómo comprimir archivos y directorios en Linux (con ejemplos)

  4. Cómo extraer archivos .gz y .tar.gz en Linux

  5. Linux:¿cómo hacer que Oracle Java 7 funcione con Setcap Cap_net_bind_service+ep?

Cómo usar el comando rm de Linux con ejemplos

Archivo host de Linux:¿Cómo editarlo y usarlo?

Cómo trabajar con procesos en primer plano y en segundo plano en Linux

Cómo trabajar con File y Shell Provisioner en Vagrant

Cómo crear y usar un archivo de intercambio en Linux

Cómo abordar los nombres de archivo con espacios en Linux