Icono de Terminal

Rutas relativas y rutas absolutas en Linux

 
 

Índice General

  1. Introducción
  2. Tipos de rutas

 

  1. Introducción (Volver al índice General)
    Cuando trabajamos en la interfaz de línea de comandos (CLI), es habitual tener que pasar como parámetros archivos o directorios. Para indicar la ubicación del archivo o directorio se utiliza la ruta o path y esta ruta puede ser absoluta o relativa. En este artículo vamos a diferenciar dichos tipos de ruta, pero antes veamos que es el árbol de directorios del sistema de ficheros.
     

    • Árbol de directorios del sistema de ficheros (Volver al índice General)
      En los sistema basados en Unix, el sistema de ficheros es una estructura jerárquica que parte de la raíz. La raíz, se representa con el carácter / y contiene los directorios principales del sistema y sus subdirectorios. Sigue el estándar de jerarquía del sistema de archivos (en inglés Filesystem Hierarchy Standard, FHS). A continuación podemos ver un listado parcial de un árbol de directorios que nos servirá para los ejemplos siguientes:

      /
      ├── bin
      ├── boot
      ├── dev
      ├── etc
      ├── home
      │   └── usuario
      │       ├── directorio1
      │       ├── directorio2
      │       └── temporal
      ├── lib
      ...
      ├── media
      │   └── cdrom0
      ├── mnt
      ...
      └── var
          └── log
              └── apt
  2.  

  3. Tipos de rutas (Volver al índice General)
    Pasemos a ver los tipos de rutas.
     

    • Rutas absolutas (Volver al índice General)
      Como hemos visto en la Introducción, el sistema de ficheros en un sistema Linux/Unix, es una estructura jerárquica que tiene una raíz, que se indica con la barra (/). La ruta absoluta a un directorio indica todos los directorios por los que hay que pasar empezando desde la raíz del sistema de archivos (/).

      Veamos un ejemplo. Fijémonos en el árbol de directorios listado más arriba, supongamos que nuestro directorio actual o de trabajo es el home del usuario (~), y queremos ir al directorio temporal que se encuentra en el home del usuario utilizando una ruta absoluta. Para hacerlo, ejecutaríamos el siguiente comando:

      usuario@mipc:~$ cd /home/usuario/temporal
      usuario@mipc:~/temporal$

      Para comprobarlo, ejecutamos el comando pwd:

      usuario@mipc:~/temporal$ pwd
      /home/usuario/directorio1

      Como se ve en el ejemplo, hemos escrito la ruta completa desde el directorio raíz hasta el directorio temporal.

      Las rutas absolutas suelen ser más largas que las rutas relativas, pero tienen la ventaja de que siempre funcionan, independientemente del lugar del árbol de directorios desde el que se ejecute el comando.

      Nota: No olvidemos que la shell nos permite autocompletar el nombre de un elemento del sistema de ficheros pulsando la tecla tabulador. Con esta utilidad ahorraremos tiempo escribiendo y evitaremos errores de escritura.

    •  

    • Rutas relativas (Volver al índice General)
       
      La ruta relativa a un directorio indica el camino hacia el directorio al que queremos cambiar o alcanzar, pero basándose en el directorio desde el que se ejecuta el comando, es decir, desde el directorio actual o de trabajo.

      Veamos un ejemplo. Fijémonos en el árbol de directorios listado más arriba, supongamos que nuestro directorio actual o de trabajo es el home del usuario (~), y queremos ir al directorio directorio1 que se encuentra en el home del usuario, podemos hacerlo indicando la ruta desde donde nos encontramos:

      usuario@mipc:~$ cd directorio1
      usuario@mipc:~/directorio1$

      Para comprobarlo, ejecutamos el comando pwd:

      usuario@mipc:~/directorio1$ pwd
      /home/usuario/directorio1

      En el ejemplo anterior nos hemos movido desde el directorio actual hacia delante, pero también podemos hacerlo hacia atrás. Para hacerlo, debemos tener claro el concepto de directorio padre.

      • Directorio padre (Volver al índice General)
        El directorio padre es aquel que contiene el directorio actual o de trabajo. Para construir rutas relativas es necesario saber que .. indica el directorio padre.

        Si ejecutamos cd .. lo que estamos haciendo es cambiar al directorio padre del directorio actual, un directorio justo antes en el árbol de directorios.

        Si hacemos un listado del directorio actual incluyendo los elementos ocultos obtendremos la siguiente información:

        usuario@mipc:~/temporal$ ls -la
        total 8
        drwxr-xr-x  2 karfer karfer 4096 ago  3  2019 .
        drwxr-xr-x 66 karfer karfer 4096 may  4 08:17 ..

        Si listamos con el comando ls -la siempre se muestran los directorios ocultos . y .. , los cuales tienen el siguiente significado:

        1. . : Hace referencia al directorio donde nos encontramos. Cuando ejecutamos un programa y escribimos ./programa.sh, ese punto delante del ejecutable indica que este se encuentra en el directorio de trabajo.
        2. .. : Hace referencia al directorio padre. Utilizando .. podemos indicarle al comando cd (o a cualquier otro comando) que retroceda de nivel. Veamos unos ejemplos:

          Supongamos que nos encontramos en el directorio /home/usuario/directorio1:

          • Para movernos del directorio actual (/home/usuario/directorio1) al directorio padre (/home/usuario), un nivel hacia atrás, podemos ejecutar el siguiente comando:
            usuario@mipc:~/directorio1$ cd ..

            Para comprobarlo, ejecutamos el comando pwd:

            usuario@mipc:~$ pwd
            /home/usuario
          • Para movernos varios niveles hacia atrás hasta llegar al directorio raíz / podemos ejecutar el siguiente comando:
            Comprobamos con pwd cual es nuestro directorio actual:

            usuario@mipc:~$ pwd
            /home/usuario

            Nos movemos dos niveles hacia atrás:

            usuario@mipc:~$ cd ../..

            Y volvemos a comprobar con pwd que ahora nuestro directorio actual es el directorio raíz /:

            usuario@mipc:~$ pwd
            /

      Veamos un ejemplo en el que bajamos de nivel y luego subimos con una sola orden. Fijémonos en el árbol de directorios listado más arriba y vamos a movernos desde el directorio /home/usuario/directorio1 hasta el directorio /home/usuario/directorio2, pero utilizando una ruta relativa:

      En el ejercicio anterior, nuestro directorio de trabajo era /home/usuario. Pues bien, vamos a cambiar nuestro directorio de trabajo a /home/usuario/directorio1:

      usuario@mipc:~$ cd directorio1

      Comprobamos cual es nuestro directorio de trabajo con pwd:

      usuario@mipc:~/directorio1$ pwd
      /home/usuario/directorio1

      Y desde directorio1, utilizando una ruta relativa, nos vamos a directorio2. Bajamos un nivel para luego subir un nivel:

      usuario@mipc:~/directorio1$ cd ../directorio2

      Comprobamos cual es nuestro directorio de trabajo con pwd:

      usuario@mipc:~/directorio2$ pwd
      /home/usuario/directorio2

 

Espero que este artículo os haya sido de utilidad. Si pensáis que podéis colaborar para mejorar este artículo, que hay algo erróneo en él o simplemente deseáis comentarlo, por favor, dejad vuestra opinión más abajo.
 
Seguir J. Carlos:

Técnico Informático - Desarrollo Web - Administración de Redes

Técnico Informático. Desarrollo Web. Administración de redes.

Últimas publicaciones de

4 comentarios

  1. miguel leon

    eres un crack, entendí inmediatamente lo que buscaba, explicas muy bien. sigue asi CRACK!!!!!!!!!

    • J. Carlos

      Hola Miguel,
      Gracias por tu comentario. Me es muy gratificante que mis explicaciones os sirvan de ayuda.
      Un saludo

  2. jose carlos

    la explicación muy buena con los ejemplos que la complementaron, me ayudo a comprender las rutas relativas y en q circunstancia ayuda a no escribir mucho, muchas gracias

Deja una respuesta

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.