Ruta relativa y absoluta, diferencias y características
Uno de los conceptos más básicos que debemos conocer cuando hacemos uso de un sistema operativo son las llamadas rutas. Con las rutas podemos indicar la localización exacta de un archivo o carpeta, siguiendo una estructura de directorios o árbol de directorios. Existen diferentes tipos de rutas, pero hoy vamos a dedicarle un artículo a hablar sobre rutas relativas y absolutas, al mismo tiempo que señalaremos sus diferencias y características.
Prácticamente todos los sistemas operativos disponen de un sistema de archivos en el que podemos emplear las rutas para localizar un archivo o carpeta. En muchas ocasiones se emplea como sinónimo de ruta la palabra «path» (ruta en inglés) y en algunas ocasiones se le llama simplemente directorio.
En este tutorial nos vamos a centrar en sistemas operativos convencionales, es decir, Windows y Linux, donde existen pequeñas diferencias a la hora de marcar las rutas, pero que iremos viendo según avancemos.
¿Para qué sirven las rutas?
Las rutas sirven para localizar un recurso. Su uso está estandarizado y nos podemos encontrar recursos localizados con sus correspondientes rutas en: páginas web, aplicaciones móviles, software de escritorio, protocolos de redes, sistemas de almacenamiento en la nube, etc.
Diseccionando una ruta para localizar un archivo en Windows y Linux.
A continuación vamos a plantear dos ejemplos de rutas para examinar y comprender todos los elementos que la componen. Un ejemplo será de una ruta en un sistema operativo Linux y la otra será una ruta del sistema operativo Windows (también válida en MS-DOS).
Ruta de ejemplo en Windows: C:\Windows\System32
En esta ruta debemos diferenciar los siguientes elementos básicos:
- Separador: el separador es un carácter delimitador que sirve para separar los diferentes elementos que componen la ruta. En el caso de Windows el separador es el carácter de barra invertida
\
. - Unidad: consiste en una letra con la que se puede identificar una unidad de almacenamiento o disco (físico o virtual). La letra de unidad siempre va seguida de dos puntos seguidos por el carácter delimitador.
La ruta de ejemplo apunta a una carpeta, pero las rutas también pueden apuntar a archivos. La siguiente ruta de ejemplo apuntaría al ejecutable del bloc de notas de Windows: C:\Windows\System32\notepad.exe
Ruta de ejemplo en Linux: /home/zeokat
En el caso de Linux, lo primero que debemos observar es que el separador es el carácter de barra diagonal /
. Además, vemos que no existen las letras de unidad y esto se debe a que en Linux se emplea otra nomenclatura para identificar los discos.
Siguiendo con las rutas en Linux, estas también pueden apuntar a archivos, por ejemplo la siguiente /home/zeokat/vozidea.txt
apunta al archivo de texto vozidea.txt
.
Rutas relativas y absolutas, diferencias características.
Hasta el momento, en los ejemplos que hemos usado sólo hemos empleado rutas absolutas, pero tanto en Windows como en Linux existe la posibilidad de trabajar con rutas relativas. En este apartado veremos las diferencias entre ambos tipos de rutas y algunas ventajas e inconvenientes que conlleva su uso.
Para hacernos una idea de las diferencias que existen entre una ruta relativa y una absoluta, basta con tener en cuenta que en una ruta absoluta se representa la ruta completa del recurso. Dicho de otra forma, se parte desde el directorio raíz hasta llegar al recurso.
En cambio, en las rutas relativas se representa sólo una parte de la ruta. Esto es posible porque en las rutas relativas se tiene en cuenta el directorio actual de trabajo.
Imaginemos que estamos en Linux y que nuestro directorio de trabajo actual es /home/zeokat
, si queremos acceder al archivo localizado en /home/zeokat/vozidea/file.txt
podemos hacerlo de dos formas:
- Usando la ruta absoluta:
/home/zeokat/vozidea/file.txt
- Usando la ruta relativa:
vozidea/file.txt
Vemos que las rutas relativas no tienen un separador al inicio de la ruta.
Alias de ruta de directorio personal en sistemas Unix.
En sistemas operativos Unix existe la ruta relativa ~/
que apunta directamente a la ruta de la carpeta personal del usuario. Por ejemplo si la carpeta personal de nuestro usuario es /home/vozidea
, podemos hacer referencia esta ruta con el alias ~/
.
Para comprobar que lo dicho antes es cierto, basta con ejecutar los comandos ls /home/zeokat
y ls ~/
para comprobar que la salida del comando ls
es exactamente la misma.
Alias de directorio de usuario en Windows.
En Windows también existe una variable de entorno que define la ruta de la carpeta de usuario, se trata de %HOMEPATH%
. Imaginemos que la carpeta de nuestro usuario es c:\users\vozidea
, por lo que podemos ejecutar los comandos dir c:\users\vozidea
y dir %HOMEPATH%
para verificar que se hace referencia a la misma ruta.
Ventajas e inconvenientes de las rutas relativas y absolutas.
La realidad es que no es que existen unas ventajas o inconvenientes asociados al uso de rutas relativas o absolutas. Para ser más exactos, se trata de elegir en cada caso el tipo de ruta que más nos conviene.
Por ejemplo, si tenemos un programa que hace uso de un archivo de configuración, la mejor opción es que se haga referencia a este archivo empleando una ruta relativa. De este modo, podremos cambiar de carpeta el programa y no perderemos el acceso al archivo de configuración.
Las rutas absolutas, tienen gran utilidad cuando apuntamos a archivos del sistema operativo o librerías específicas. Muchos sistemas operativos tienen un árbol de directorios estandarizado, por lo que podemos emplear rutas absolutas para localizar recursos específicos.