Cómo crear enlaces duros y simbólicos en Linux


En sistemas operativos similares a Unix, como Linux, "todo es un archivo" y un archivo es fundamentalmente un enlace a un inodo (una estructura de datos que almacena todo sobre un archivo, aparte de su nombre y contenido real).

Un enlace duro es un archivo que apunta al mismo inodo subyacente, como otro archivo. En caso de que elimines un archivo, elimina un enlace al inodo subyacente. Mientras que un enlace simbólico (también conocido como enlace flexible) es un enlace a otro nombre de archivo en el sistema de archivos.

Otra diferencia importante entre los dos tipos de enlaces es que los enlaces duros solo pueden funcionar dentro del mismo sistema de archivos, mientras que los enlaces simbólicos pueden ir a través de diferentes sistemas de archivos.

Cómo crear enlaces duros en Linux

Para crear enlaces duros en Linux, usaremos ln utility . Por ejemplo, el siguiente comando crea un enlace fijo denominado tp al archivo topprocs.sh .

$ ls -l
$ ln topprocs.sh tp
$ ls -l

Mirando la salida anterior, usando el comando ls, el nuevo archivo no se indica como un enlace, se muestra como un archivo normal. Esto implica que tp es solo otro archivo ejecutable regular que apunta al mismo inodo subyacente que topprocs.sh .

Para hacer un enlace fijo directamente en un enlace flexible, use la marca -P de esta manera.

$ ln -P topprocs.sh tp

Cómo crear enlaces simbólicos en Linux

Para crear enlaces simbólicos en Linux, usaremos el mismo ln utility con el interruptor -s . Por ejemplo, el siguiente comando crea un enlace simbólico denominado topps.sh al archivo topprocs.sh .

$ ln -s ~/bin/topprocs.sh topps.sh
$ ls -l topps.sh

En la salida anterior, puede ver en la sección de permisos de archivos que topps.sh es un enlace indicado por l: , lo que significa que es un enlace a otro nombre de archivo.

Si el enlace simbólico ya existe, puede obtener un error, para forzar la operación (eliminar el enlace simbólico saliente), use la opción -f .

$ ln -s ~/bin/topprocs.sh topps.sh
$ ln -sf ~/bin/topprocs.sh topps.sh

Para habilitar el modo detallado, agregue la bandera -v para imprimir el nombre de cada archivo vinculado en la salida.

$ ln -sfv ~/bin/topprocs.sh topps.sh
$ $ls -l topps.sh

¡Eso es! Echa un vistazo a estos siguientes artículos relacionados.

  1. fdupes – A Command Line Tool to Find and Delete Duplicate Files in Linux
  2. 5 Useful Commands to Manage File Types and System Time in Linux

En este artículo, hemos aprendido cómo crear enlaces duros y simbólicos en Linux. Puede hacer cualquier pregunta (s) o compartir sus opiniones sobre esta guía a través del formulario de comentarios a continuación.