Enlaces simbólicos en Unix / Linux

    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.

    Te puede interesar:Leer y escribir archivos CSV con Node.js

    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.

    Te puede interesar:Git: Checkout a Remote Branch

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

    Te puede interesar:Demostración matemática de la corrección y eficiencia del algoritmo

    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:

    Te puede interesar:Git: eliminar sucursales de forma local y remota

    Enlaces duros Enlace suave (enlace simbólico)

    Te puede interesar:Git: volver a una confirmación anterior
    El objetivo debe existir Es posible que el destino ya exista, pero no es necesario
    Permitido solo en sistemas de archivos Permitido entre diferentes sistemas de archivos
    Vínculos directamente al lugar donde se almacena el archivo Vínculos a la entrada en la tabla del sistema de archivos (node)
    Eliminar el enlace significa eliminar todo el archivo Eliminar 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:

    Te puede interesar:Git: cambiar el nombre de una sucursal local y remota
    $ 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:

    Te puede interesar:Zsh contra Bash

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

    Te puede interesar:Monitoreo de cambios de datos usando un HIDS
    $ 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.

    Te puede interesar:Siga los redireccionamientos en cURL

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

    Te puede interesar:Cómo usar el comando crontab en Unix
    $ 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.

    Te puede interesar:Uso de SCP para copiar y transferir archivos y carpetas de forma segura

    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.

    Te puede interesar:Ejecutar tareas periódicas en Node con node-cron

    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.

     

    Rate this post

    Etiquetas: