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 vínculo físico es un archivo que apunta al mismo inodo subyacente, como otro archivo. En caso de que elimine 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 atravesar diferentes sistemas de archivos.

Cómo crear enlaces duros en Linux

Para crear enlaces físicos en Linux, usaremos la utilidad ln. Por ejemplo, el siguiente comando crea un enlace físico llamado 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 vínculo físico directamente en un vínculo suave, use la bandera -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 la misma utilidad ln con el interruptor -s . Por ejemplo, el siguiente comando crea un enlace simbólico llamado 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 archivo 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, es posible que obtenga un error, para forzar la operación (elimine el enlace simbólico existente), 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 el indicador -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! Consulte los siguientes artículos relacionados.

  1. fdupes: una herramienta de línea de comandos para buscar y eliminar archivos duplicados en Linux
  2. 5 comandos útiles para administrar los tipos de archivos y la hora del sistema en Linux

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