Obtén la ruta absoluta de un script en Bash

Obtén la ruta absoluta de un script en Bash

A menudo, en Bash, necesitamos saber la ruta absoluta del script que estamos ejecutando. Por ejemplo, puede serte útil cuando necesitas manipular archivos en el mismo directorio que el script o en un directorio relativo a éste. En este artículo, te mostraremos cómo obtener la ruta absoluta de un script en Bash.

📋 Aquí podrás encontrar✍
  1. ¿Qué es una ruta absoluta?
  2. Cómo obtener la ruta absoluta de un script en Bash
  3. Alternativas para obtener la ruta absoluta
  4. Ejemplo utilizando la ruta absoluta
  5. Conclusión
  6. Preguntas frecuentes
    1. ¿Qué es una ruta absoluta?
    2. ¿Para qué me sirve conocer la ruta absoluta de un script en Bash?
    3. ¿Cómo puedo obtener la ruta absoluta de un archivo en Bash?

¿Qué es una ruta absoluta?

Antes de proseguir, hay que aclarar qué es una ruta absoluta. Una ruta absoluta describe el camino completo desde la raíz del sistema de archivos hasta el archivo o directorio que se busca. La ruta absoluta siempre comienza con una barra diagonal (/) y no depende del directorio actual donde se encuentre el usuario.

Cómo obtener la ruta absoluta de un script en Bash

Hay distintas maneras de obtener la ruta absoluta de un script en Bash, pero la más común es mediante la variable especial $0. Esta variable almacena el nombre del script tal y como se empleó en la línea de comandos para ejecutarlo.

Para obtener la ruta absoluta, simplemente debes utilizar el comando readlink como se muestra a continuación:

#!/bin/bash
DIR=$(dirname "$(readlink -f "$0")")
echo "La ruta absoluta del script es: $DIR"

El resultado debería ser la ruta absoluta del directorio en el que se encuentra el script.

Alternativas para obtener la ruta absoluta

Si por alguna razón la solución anterior no funciona, también puedes utilizar las variables PWD y $BASH_SOURCE.

Para usar la variable PWD, simplemente agrega la siguiente línea al comienzo de tu script:

#!/bin/bash
DIR=$PWD
echo "La ruta absoluta del script es: $DIR"

La variable PWD contiene la ruta completa del directorio actual, lo que hace que esta opción sea una alternativa válida para obtener la ruta absoluta.

Otra opción posible es utilizar la variable $BASH_SOURCE, la cual almacena una matriz con el origen actual del script. Esta variable mantiene la ruta relativa del script cuando este es llamado desde una carpeta diferente a la actual, y muestra la ruta absoluta cuando se ejecuta desde el mismo directorio que el script.

#!/bin/bash
DIR=$(dirname "${BASH_SOURCE[0]}")
echo "La ruta absoluta del script es: $DIR"

Ejemplo utilizando la ruta absoluta

Imaginemos que tenemos un script en el directorio /home/user/scripts/myscript.sh y queremos hacer referencia a un archivo que se encuentra en el mismo directorio.

Podríamos utilizar la ruta relativa:

#!/bin/bash
cat ./archivo.txt

O bien, podemos utilizar la ruta absoluta del script para hacer referencia al archivo de manera más precisa:

#!/bin/bash
DIR=$(dirname "$(readlink -f "$0")")
cat "$DIR/archivo.txt"

Esta última opción asegura que el archivo siempre sea encontrado, incluso si el script es llamado desde otro directorio.

Conclusión

En este artículo, exploramos diferentes formas de obtener la ruta absoluta de un script en Bash. Ya sea utilizando la variable $0, $PWD o $BASH_SOURCE, es importante conocer estas técnicas que te pueden ahorrar tiempo y esfuerzo en tus proyectos de programación en Bash. Asegúrate de utilizar la ruta absoluta para asegurarte de que tus archivos sean encontrados sin importar desde donde hayas llamado tu script.

Preguntas frecuentes

¿Qué es una ruta absoluta?

Una ruta absoluta describe el camino completo desde la raíz del sistema de archivos hasta el archivo o directorio que se busca. La ruta absoluta siempre comienza con una barra diagonal (/) y no depende del directorio actual donde se encuentre el usuario.

¿Para qué me sirve conocer la ruta absoluta de un script en Bash?

Conocer la ruta absoluta de un script en Bash te permite hacer referencia precisa a los archivos en el mismo directorio o en un directorio relativo a éste, lo que es útil al manipular archivos en tus proyectos de programación.

¿Cómo puedo obtener la ruta absoluta de un archivo en Bash?

Existen diferentes maneras de obtener la ruta absoluta de un archivo en Bash. Pero la más común es mediante las variables $0, $PWD o $BASH_SOURCE.

Deja una respuesta

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

Subir