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.

    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.

     

    Etiquetas:

    Deja una respuesta

    Tu direcci贸n de correo electr贸nico no ser谩 publicada. Los campos obligatorios est谩n marcados con *