Ruta absoluta vs relativa en Linux: ¿Cuál es la diferencia?

En este capítulo de aprendizaje esencial de Linux, conoce las rutas relativas y absolutas en Linux. Cuál es la diferencia entre ellas y cuál debes usar.
Warp Terminal

La ruta es uno de los conceptos más esenciales en Linux y esto es algo que todo usuario de Linux debe saber.

Una ruta es la forma de referirse a los archivos y directorios. Da la ubicación de un archivo o directorio en la estructura de directorios de Linux. Se compone de un nombre y de la sintaxis de la barra diagonal.

/home/itsfoss/scripts

Como usuario, tendrás que utilizar la ruta cuando quieras acceder a un determinado archivo o directorio o cuando tengas que dar la ubicación de un archivo o directorio a un comando o script.

cat /home/itsfoss/scripts/mi_script.sh

Recuerda que si la ruta comienza con la barra «/», la primera barra denota la raíz. El resto de las barras en la ruta son sólo separadores. Los principiantes a menudo se confunden entre la barra de raíz y las barras de separación.

En el diagrama anterior, tienes la primera ruta que comienza con la barra de la raíz. Hay otra ruta que no comienza con / (es decir, la raíz).

Ambas son correctas. La primera es una ruta absoluta y la segunda es una ruta relativa. Vamos a echar un vistazo detallado a ellos.

Ruta absoluta y relativa en Linux

La ruta absoluta siempre comienza en el directorio raíz (/). Por ejemplo, /home/itsfoss/scripts/mi_scripts.sh.

Una ruta relativa comienza desde el directorio actual. Por ejemplo, si se encuentra en el directorio /home y desea acceder al archivo mi_script.sh, puede utilizar itsfoss/scripts/mi_script.sh.

Entender la diferencia entre rutas absolutas y relativas

Ya sabes que la estructura de directorios en Linux se parece a la raíz de un árbol. Todo comienza en la raíz y se ramifica desde allí.

Ahora imagina que estás en el directorio itsfoss y quieres acceder al archivo mi_script.sh.

La ruta absoluta está representada en la línea punteada verde y la ruta relativa está representada en las líneas punteadas amarillas.

Supongamos que quieres ver las propiedades del archivo mi_script.sh utilizando el comando ls.

Puedes utilizar la ruta absoluta que comienza con el directorio raíz (/):

ls -l /home/itsfoss/scripts/mi_script.sh

O bien, puedes utilizar la ruta relativa (que comienza en el directorio actual, no en /):

ls -l scripts/mi_script.sh

Ambos comandos darán el mismo resultado (excepto la ruta del archivo).

team@itsfoss:~$ pwd
/home/team
team@itsfoss:~$ ls -l /home/team/scripts/mi_script.sh
-rwxrw-r-- 1 team itsfoss 33 Jan 30 15:00 /home/team/scripts/mi_script.sh
team@itsfoss:~$ ls -l scripts/mi_script.sh
-rwxrw-r-- 1 team itsfoss 33 Jan 30 15:00 scripts/mi_script.sh

En Linux, los nombres de archivo distinguen entre mayúsculas y minúsculas, números, puntos, guiones, guiones bajos y la mayoría de los símbolos, excepto la barra (/). La barra (/) está reservada para la raíz y para separar directorios en la ruta.

Uso de la ruta relativa con los directorios . y ..

Permíteme mostrarte otros ejemplos para explicar la diferencia entre la ruta absoluta y la ruta relativa. Pero antes de eso, debes saber acerca de dos rutas relativas especiales:

  • . ( punto simple) denota el directorio actual en la ruta.
  • .. (dos puntos) indica el directorio principal, es decir, un nivel superior.

Las cosas se aclararán en un momento. Echa un vistazo al escenario. En este, quieres ir al directorio marco desde el directorio itsfoss.

Puede utilizar el comando cd para cambiar de directorio. La ruta absoluta es bastante evidente aquí:

cd /home/marco

Para utilizar la ruta relativa, tendrá que utilizar la ruta relativa especial:

cd ../marco

¿Por qué usar ..? Porque una ruta relativa requiere dirección desde el directorio actual y tienes que decirle al comando cd que suba un nivel antes de bajar. El .. te lleva al directorio /home y desde allí vas al directorio marco.

Espero que las cosas estén mucho más claras ahora.

La ruta absoluta siempre comienza con la raíz (/) y seguirá siendo la misma independientemente de su ubicación actual. La ruta relativa depende de tu ubicación actual.

¿Cuál debe utilizar? ¿Ruta relativa o ruta absoluta?

Para ser sinceros, no hay una respuesta directa a esta pregunta. Realmente depende de la situación.

Si estás muy abajo en la jerarquía de directorios y tienes que moverte un nivel hacia arriba o hacia abajo, el uso de la ruta relativa será más fácil.

Supongamos que estás en el directorio /home/nombredeusuario/programación/proyecto/interfaz/src/header y tienes que acceder a algo en el directorio /home/nombredeusuario/programación/proyecto/interfaz/bin. El uso de la ruta relativa le ahorrará escribir todos esos largos nombres de directorios y puede usar simplemente ../../bin aquí.

Pero si tienes que acceder a algo en el directorio /usr/bin desde el directorio /home/username/programming/project/interface/src/header, usar algo como ../../../../../usr/bin no será algo inteligente. Usar la ruta absoluta es lo más sensato en este caso.

Otro caso es el uso de las rutas en scripts o programas. Cuando estés seguro de la ubicación, utiliza la ruta absoluta. Si tu proyecto tiene varias carpetas y se requiere cambiar entre directorios, puedes usar la ruta relativa aquí porque no sabes dónde el usuario final estará copiando todos los archivos del proyecto, en el directorio home o en algún directorio dev.

En otras palabras, debes conocer ambos métodos y utilizar el que va a ser más fácil en función de su escenario.

Espero que ahora tengas una mejor comprensión de la ruta y la navegación en Linux. Si tienes preguntas o sugerencias, por favor deja un comentario.

About the author
Marco Carmona

Marco Carmona

My name is Marco Antonio Carmona, I'm a physics and data science student, a great and passionate reader, and randomly, my favorite hobby is writing about what I learn day by day.

It's FOSS

Making You a Better Linux User

It's FOSS

Great! You’ve successfully signed up.

Welcome back! You've successfully signed in.

You've successfully subscribed to It's FOSS.

Success! Check your email for magic link to sign-in.

Success! Your billing info has been updated.

Your billing was not updated.