Bash Script para obtener Target Symlink

Bash Script para obtener Target Symlink
Todos estamos familiarizados con los enlaces simbólicos en Linux. Comúnmente conocido como enlaces simbólicos o enlaces suaves, un enlace simbólico es un archivo particular que apunta a otro archivo o directorio dentro de cualquier sistema de archivos.

En este breve tutorial, repasaremos los conceptos básicos de los enlaces simbólicos en Linux y crearemos un script bash simple para obtener el objetivo del enlace simbólico.

Tipos de enlaces simbólicos

Hay principalmente dos tipos de enlaces simbólicos, a saber:

Enlaces duros:

Los enlaces duros son consejos directos para un archivo o directorio dentro de un sistema de archivos. Los enlaces duros son creables solo en el mismo sistema de archivos que el archivo de destino.

Enlaces suaves:

Por otro lado, los enlaces suaves son atajos indirectos en un archivo o directorio y pueden existir en cualquier lugar dentro de un sistema de archivos. Los enlaces suaves pueden apuntar a archivar en un sistema de archivos diferente.

Cómo crear enlaces simbólicos

Para crear un enlace simbólico en Linux, usamos el comando LN. Ejecutar el comando sin opciones crea un enlace difícil al archivo de destino especificado.

La sintaxis general para el comando ln es:

LN [Opciones]

Como se mencionó, el comando anterior creará un enlace difícil al archivo de destino. Para crear un enlace simbólico suave, use la opción -s como:

ln -s [opción]

Ejemplo 1

Tomemos la autenticación del archivo.Iniciar sesión /var /log. Podemos crear un enlace al archivo en nuestro directorio de inicio utilizando el comando como:

ln -s/var/log/auth.Auth de registros.registro

El comando anterior creará un enlace que apunta al archivo principal. Podemos verificar esto usando el comando LS:

ls -la

Ejemplo #2

También puede realizar una operación similar en un directorio. Para crear un enlace a /var /log, usamos el comando:

LN -S /var /log log

Del mismo modo, se crea un enlace suave que apunta al directorio objetivo /var /log:

ls -la

Cómo eliminar los enlaces simbólicos

Para eliminar un enlace simbólico, usamos el comando unlink seguido de la ruta al enlace simbólico para eliminar.

Por ejemplo:

Unlink ~/log

NOTA: Si elimina el archivo o directorio de destino, elimine el enlace simbólico porque dejarlo crea un enlace roto.

Cómo obtener un archivo o directorio de objetivos de enlace simbólico

Cada enlace simbólico apunta a un archivo o directorio objetivo (a menos que esté roto). Para obtener el archivo de destino/directorio de un enlace simbólico, utilizamos este comando que muestra el objetivo de un enlace simbólico.

Por ejemplo, para obtener el objetivo de la autenticación.Archivo de registro que creamos en una sección anterior, podemos hacer:

Autorización de readlink.registro
/val/log/auth.registro

Un script bash simple para obtener enlaces simbólicos

Usando los conceptos anteriores, podemos ensamblar un script bash simple que acepta una ruta y enumera todos los enlaces simbólicos y sus archivos de destino o directorio.

Un script simple como el que se proporciona a continuación debe hacer el truco.

#!/bin/bash
Echo "Proporcione el directorio para evaluar:"
Leer Target_dir
CD $ Target_dir
enlaces = $ (encontrar . -maxdepth1 -type l -ls | Awk 'imprimir $ 11')
Para enlaces en enlaces
hacer
echo "$ enlace -> $ (readlink $ link)"
hecho

El script comienza pidiendo al usuario el directorio que evalúe. Luego, el script va al directorio proporcionado y encuentra todos los enlaces simbólicos dentro del directorio, y pasa la salida a AWK.

AWK analiza la salida y localiza solo los enlaces simbólicos y los guarda a una variable llamada enlaces.

Luego creamos un bucle que toma cada enlace en los enlaces y evalúa su valor de destino utilizando el comando readlink.

Finalmente, hacemos eco del enlace simbólico y el directorio objetivo. A continuación se muestra una salida de ejemplo:

En el ejemplo anterior, encontramos todos los enlaces simbólicos en el directorio /etc e imprimimos su archivo o directorio de destino.

Conclusión

En este tutorial, discutimos los conceptos básicos del uso de enlaces simbólicos en Linux. Luego creamos un script simple para encontrar enlaces simbólicos en un directorio especificado y mostrar su fuente y objetivo.

Gracias por leer!