Enlaces simbólicos en Unix / Linux

E

Los diferentes sistemas de archivos del universo UNIX / Linux permiten una variedad de entradas, como archivos normales, directorios, sockets, canalizaciones con nombre y enlaces. En este artículo te explicaré qué son los enlaces, qué tipos de enlaces existen, cómo crear un enlace simbólico y cómo detectar enlaces simbólicos rotos fácilmente. Los enlaces le permiten tener múltiples puntos de entrada en un sistema de archivos, lo que le permite tener muchas menos copias (a veces solo una) pero manteniendo la flexibilidad al tener múltiples formas de acceder a un archivo determinado.

Vinculación de entradas

En la línea de comandos de UNIX / Linux, la herramienta ln abrevia el término enlace. Le permite crear una referencia adicional a un archivo o directorio. Lo hace agregando un nombre adicional de una entrada en la tabla de asignación de archivos del sistema de archivos. Una vez hecho esto, puede acceder al archivo o directorio referenciado tanto con el nombre original como con el nuevo nombre. Piense en una sola persona que podría ser un empleado, cliente y prospecto.

La herramienta ln pertenece a la lista de software esencial en Unix / Linux. En Debian GNU / Linux y Ubuntu es parte del paquete coreutils.

Existe una clara distinción entre enlaces físicos y enlaces blandos. Los enlaces suaves también se denominan enlaces simbólicos. Hay bastantes diferencias entre los dos tipos que se enumeran a continuación:

Enlaces duros Enlace suave (enlace simbólico)

El objetivo debe existirEs posible que el destino ya exista, pero no es necesario
Permitido solo en sistemas de archivosPermitido entre diferentes sistemas de archivos
Vínculos directamente al lugar donde se almacena el archivoVínculos a la entrada en la tabla del sistema de archivos (node)
Eliminar el enlace significa eliminar todo el archivoEliminar el enlace significa eliminar el enlace al node, no el archivo en sí

Ejecutando el ln El comando sin opciones crea un vínculo físico desde el origen al destino. Con la ayuda de la opción -s en su lugar, crea un vínculo simbólico. -s es el nombre corto de la opción, mientras que --symbolic es el nombre más largo. El enlace se creará en el directorio actual del sistema de archivos en el momento de su creación. Los desarrolladores simplemente usan el término enlace simbólico. En general, llámelo de la siguiente manera:

$ ln -s [target] [link_name]

target es el archivo o directorio al que enlazar, y link_name es el nombre del enlace que hará referencia al destino. Como ejemplo, esta llamada crea un enlace simbólico desde link_to_python a /usr/bin/python:

Ejemplo 1: creación de un enlace simbólico

$ ln -s /usr/bin/python link_to_python
$ ls -la link_to_python 
lrwxrwxrwx 1 frank frank 15 Oct  5 14:25 link_to_python -> /usr/bin/python

Ver qué ln hace, una opción útil es -v (--verbose para la opción más larga). Esto le brinda más información sobre la acción.

Ejemplo 2: crear un enlace simbólico con información adicional

$ ln -sv /usr/bin/python link_to_python
link_to_python -> /usr/bin/python

Como puede ver, la salida del comando muestra el nuevo enlace creado.

Casos de uso

Primero, un caso de uso regular del que quizás no haya tenido conocimiento son dos entradas del sistema de archivos de uso común: . (el directorio local) y .. (directorio de padres). Estos se implementan como enlaces simbólicos.

En segundo lugar, los desarrolladores instalan varias versiones de un programa para realizar sus pruebas. El uso de enlaces simbólicos puede resultar bastante útil para hacer referencia a la versión actual que se está probando, y mantiene dos o más instancias disponibles sin muchos problemas.

¿Qué sucede si elimina un archivo que tiene un enlace simbólico apuntando a él? Nos referimos a estos enlaces con un “objetivo” inexistente como enlaces “muertos”. Para detectar tales casos el encontrar El comando es bastante útil. Por tanto, la opción -Ly la acción -type l entra en juego. los -L bandera dice find para seguir enlaces simbólicos, mientras -type l solo coincidirá con enlaces simbólicos.

En el ejemplo 3, el directorio actual contiene dos archivos llamados auto y backup, así como dos enlaces simbólicos: data apuntando a autoy generic apuntando a files. Desafortunadamente, el files el archivo / directorio no existe.

Utilizando la find comando, podemos examinar los enlaces y generar sus nombres en caso de que el destino del enlace no exista. En nuestro caso es el enlace simbólico denominado generic apuntando a files eso no existe.

Ejemplo 3: detección de enlaces rotos mediante find

$ ls -la
total 4
drwxr-xr-x  2 frank frank 1024 Oct  5 13:36 .
drwxrwxrwt 44 root  root  3072 Oct  5 13:35 ..
-rw-r--r--  1 frank frank    0 Oct  5 13:34 auto
-rw-r--r--  1 frank frank    0 Oct  5 13:34 backup
lrwxrwxrwx  1 frank frank    1 Oct  5 13:35 data -> auto
lrwxrwxrwx  1 frank frank    1 Oct  5 13:35 generic -> files
$ find -L . -type l
./generic

Como alternativa, puede que le guste el symlinks mando. Este es un paquete no predeterminado disponible para Debian GNU / Linux y Ubuntu. Con las dos opciones -s y -v, symlinks detecta las entradas. Como se ve en el Ejemplo 4 a continuación, los enlaces sin objetivos válidos se clasifican como colgantes.

Ejemplo 4: detección de enlaces rotos mediante symlinks

$ symlinks -sv .
dangling: /directory/generic -> files
relative: /directory/data -> auto

Conclusión

El concepto de enlaces simbólicos no es un gran misterio. La creación de estas referencias puede simplificar el uso del software y ayuda a probar diferentes versiones del mismo en el mismo sistema. Tenga en cuenta que el Instituto Profesional de Linux (LPI) le hará preguntas al respecto durante la certificación de LPI1.

 

About the author

Ramiro de la Vega

Bienvenido a Pharos.sh

Soy Ramiro de la Vega, Estadounidense con raíces Españolas. Empecé a programar hace casi 20 años cuando era muy jovencito.

Espero que en mi web encuentres la inspiración y ayuda que necesitas para adentrarte en el fantástico mundo de la programación y conseguir tus objetivos por difíciles que sean.

Add comment

Sobre mi

Últimos Post

Etiquetas

Esta web utiliza cookies propias para su correcto funcionamiento. Al hacer clic en el botón Aceptar, aceptas el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad