Cuando trabajamos con ficheros almacenados en algún sistema de ficheros tenemos que indicar dónde se encuentra de alguna forma inequívoca, sin lugar a dudas. Para ello se utiliza las rutas.
Hoy en día, estamos acostumbrados a trabajar con interfaces gráficas de usuario en las que utilizamos alguna aplicación para movernos por el sistema de ficheros, como por ejemplo el explorador de windows o nautilus.
Con estas aplicaciones podemos movernos por el sistema de ficheros, recorriendo los distintos directorios hasta que llegamos al fichero que buscamos.
Al final, lo que estamos haciendo es crear la propia ruta del fichero al que queremos llegar, la cual va apareciendo en la barra de direcciones del navegador que estemos utilizando.
Por ejemplo, si nos mentemos en la unidad C:, en el directorio Windows y dentro en el directorio system32, podemos buscar el fichero notepad.exe.
Si nos fijamos, en la barra de direcciones aparece la ruta que nos lleva al directorio que contiene el fichero que buscamos. Es más, si hacemos clic sobre la barra de direcciones, aparecerá la ruta.
Definición y tipos de rutas
Una ruta es el camino que nos indica de forma inequívoca dónde está almacenado un fichero en un sistema de ficheros. Se necesita este tipo de información para poder referenciar a cualquier fichero almacenado en el sistema de ficheros sin lugar a dudas o ambigüedades.
De esta forma, podemos identificar un fichero en un sistema de ficheros de forma única.
Existen dos tipos de rutas, en función de el punto de partida de la ruta, las rutas absolutas y las rutas relativas.
- Ruta absoluta. Indica dónde se encuentra un fichero dentro de un sistema de ficheros comenzando desde el directorio raíz.
- Ruta relativa. Indica dónde se encuentra un fichero dentro de un sistema de ficheros comenzando desde el directorio de trabajo o directorio actual.
Las rutas relativas se utilizan, principalmente por dos motivos:
- Para simplificar la ruta del fichero al que se desea acceder.
- Localizar un fichero que esté dentro de un subárbol o directorio concreto sin importar dónde se encuentre en árbol de directorios global. Facilita la portabilidad de directorios completos y las referencias «internas». Por ejemplo, el fichero ./images/educatica.jpg siempre estará en el directorio images que está dentro del directorio actual, sin importar la ruta del directorio actual.
Aquí habría que hacer algunas aclaraciones o detalles en general.
Directorio actual o de trabajo
Se trata del directorio en el que el usuario se encuentra actualmente trabajando. Este concepto tiene sentido sobre todo en interfaces de comandos.
Vamos a lanzar una consola de comandos en Windows (WND + R – cmd).
Si nos fijamos, a la izquierda del cursos aparece una información que no podemos borrar y que siempre precede lo que escribamos en la consola de comandos. Esta información se llama prompt del sistema y, por defecto, nos muestra la ruta del directorio actual.
Si ejectuamos el comando cd sin parámetros, es decir sin escribir nada más que cd, y pulsamos enter, se mostrará en pantalla la ruta del directorio actual.
Unidades lógicas y unidad actual
En los sistemas operativos de Microsoft se identifican las particiones como unidades lógicas. Cada unidad lógica conectada y reconocida en el sistema se identifica con una letra que comenzaban en la A.
Antiguamente A: y B: solían asignarse a las unidades de diskette. La unidad C: se asigno al primer disco duro ( en realidad a la partición del disco duro).
Actualmente podemos tener varias unidades lógicas (particiones con sistema de ficheros reconocidos por windows) en nuestros sistemas informáticos. Para hacer referencia a una unidad en una ruta, se utiliza su letra seguida de dos puntos.
Por ejemplo: C:\leeme.tx o D:\Castelar\Datos\2020\alumnos.pdf.
Bien, pues al igual que existe el concepto de directorio de trabajo o actual, en Windows también se utiliza la unidad de trabajo o unidad actual. Es decir, que si en una ruta no ponemos la unidad en la que estamos trabajando, el sistema operativo entenderá que se hace referencia a la unidad actual.
Vamos a probarlo con la consola de comandos que hemos abierto anteriormente. Si ejecutamos el comando dir seguido de una ruta, nos momstrará información sobre el fichero o directorio que le hemos proporcionado como parámetro.
Vamos a escribir dir \ para obtener información sobre el directorio raíz, pero no vamos a decir la unidad.
Como hemos dicho, Windows nos mostrará información sobre el directorio raíz de la unidad actual, que en este caso es C:
Rutas absolutas en Windows
Toda ruta absoluta comienza por el directorio raíz. Sin embargo, en Windows podemos tener varios directorios raiz, uno por cada unidad lógica. Entonces, en las rutas de ficheros en sistemas Windows cuando usemos una ruta absoluta tendremos que indicar también la letra de la unidad en la que se encuentra el fichero.
Por ejemplo:
- C:\Datos\leeme.txt
- D:\Datos\leeme.txt
Si nos fijamos las rutas son similares, salvo por la letra de la unidad en la que se encuentra el fichero.
Si no somos muy puristas, podríamos considerar ruta absoluta aquella que comienza tanto por la unidad seguida por la raíz como por aquellas que comiencen tan solo pro la raíz.
Caso práctico simple
Utilizando la máquina virtual del caso práctico de sistema dual, en Windows 10, vamos a crear una serie de directorios dentro de la unidad D:.
Vamos a crear un directorio llamado Castelar.
Dentro del directorio Castelar, vamos a crear los siguientes directorios: smr, asir, dam, daw.
Para ello tenemos que entrar en el directorio Castelar previamente y desde este directorio crear uno a uno los directorios que nos han solicitado.
Si nos fijamos, al entrar dentro del directorio Castelar estamos trabajando, como usuarios, con rutas relativas. Le indicamos al Explorador de Windows que queremos crear, por ejemplo, el directorio smr, dándole tan solo el nombre del directoro no su ruta absoluta.
No obstante, el Explorador si está trabajando con rutas absolutas, tan solo tenemos que mirar la barra de direcciones para darnos cuenta de donde estamos.
Al final, después de realizar varias operaciones con el ratón y el teclado, tendremos creados los cuatro directorios.
Ahora vamos a crear los siguientes directorios dentro de cada uno de estos directorios: docs, actividades y examenes.
Para llevar a cabo esta tarea utilizando el explorador de Windows tendríamos dos opciones:
- Entrar en cada uno de los directorios y crear los tres directorios solicitados, uno por uno. Esto sería muy tedioso, aunque es la opción que nos da la herramienta.
- Crear los tres directorios, docs, actividades y examenes, dentro de un directorio, por ejemplo smr. Después copiar los tres directorios y pegarlos dentro del resto de cada uno de los directorios restantes.
Optamos por la segunda opción, creamos los tres directorios dentro del directorio smr, por ejemplo.
Ahora, copiamos y pegamos los directorios en el resto de directorios dentro del directorio Castelar.
Ahora nos cambiamos al resto de directorios y pegamos los directorios copiados.
Al final, tendremos un pequeño árbol de directorios con el que vamos a practicar.
Ahora vamos a crear un nuevo fichero de texto plano dentro del directorio Castelar, con el nombre leeme.txt. El contenido de este fichero será tu nombre de pila.
Para crearlo podemos hacer clic con el botón derecho sobre el directorio Castelar y seleccionar Nuevo en el menú contextual y Documento de texto en el submenú.
Ahora le ponemos el nombre.
Aunque no se ve la extensión es txt.
Vamos a copiar este fichero dentro de cada uno de los directorios smr, asir, dam y daw.
Podemos utilizar los aceleradores de teclado CTRL+C para copiar y CTRL+V para pegar. Como podemos entender, los aceleradores de teclado nos agilizan mucho el proceso.
«Ahora vamos a crear un nuevo fichero de texto llamado rutas» Con esta información no tenemos claro dónde vamos a crear este fichero. Con solo esa información lo deberíamos crear en el directorio actual en el que estemos, pero… ¿cuál es el directorio actual en el que estás ahora mismo?. Es más, es posible que el resto de compañeros del aula no estén en el mismo directorio.
Esto es un ejemplo de la ambigüedad con la que podemos encontrarnos y que tenemos que evitar, porque los sistemas informáticos necesitan instrucciones claras y precisas, no ambiguas.
- «Crea un nuevo fichero de texto plano llamado rutas dentro del directorio Castelar que está en la raíz de la unidad D:»
- «Crea un nuevo fichero de texto plano llamado rutas dentro del directorio D:\Castelar»
Dentro de este fichero, vamos a escribir las rutas absolutas de cada uno de los ficheros leeme.txt que están dentro del árbol D:\Castelar.
Ahora editamos el fichero y comenzamos a insertar las rutas absolutas de todos los ficheros leeme.txt que hemos creado y que están dentro del subárbol de directorios D:\Castelar. Comensamos por el primero fichero leeme.txt que hemos creado, el que está justo dentro del directorio D:\Castelar.
Para ayudarnos con la creación de las rutas, podemos aprovechar la información que nos da el Explorador de Windows. Para ello, podemos entrar dentro del directorio asir, por ejemplo, y hacer clic en el la barra de direcciones.
Esto nos mostrará la ruta del directorio asir, que está dentro del directorio Castelar, que está dentro del directorio raíz de la unidad lógica D:.
Ahora solo tenemos que añadir a la ruta del directorio que contiene el fichero leeme.txt, D:\Castelar\asir, el nombre del fichero con el separador de directorios: D:\Castelar\asir\leeme.txt.
También podriamos haber hecho clic sobre la barra de direcciones y comenzar a escribir el nombre del fichero, en este caso leeme.txt. El explorador de windows nos sugerirá el nombre del fichero que concuerde con el principio del fichero que estamos escribiendo.
Al final tendremos este resultado.
Si nos fijamos, todas las rutas comparten el inicio de la ruta, lo que tienen en común: D:\Castelar. Todos los ficheros están dentro de este subárbol o rama del árbol de directorios.
Si nos fijamos, también, lo que va cambiando es el nombre del directorio en el que se encuentra cada fichero leeme.txt dentro de los directorios smr, asir, dam y daw.
Por último, aunque quizás es lo primero, todas las rutas absolutas comienzan por la letra que udentifica la unidad lógica en la que se encuentra el sistema de ficheros. Esto es así, como ya sabemos, porque Windows identifica los sistemas de ficheros como unidades lógicas a las que les asigna con una letra separada por dos puntos.
Ahora vamos a escribir las rutas relativas de cada uno de los ficheros leeme.txt. Para ello, necesitamos partir de un directorio actual. Vamos a suponer que el directorio actual es D:\Castelar.
Si cogemos la ruta relativa, junto con el directorio actual, podemos construir la ruta absoluta a la que hace referencia. Esto tiene un poco más de miga, pero en este ejemplo es muy sencillo.
Complicando las rutas relativas
Ahora, vamos a determinar las rutas relativas de cada uno de los ficheros leeme.txt, pero suponiendo que el directorio actual es D:\Castelar\daw
Ahora vamos a determinar las rutas relativas de cada fichero, pero desde el directorio de trabajo D:\Castelar\daw\docs.
Algunas actividades
Para intentar comprender las rutas y asimilirlas, lo ideal es practicar mucho con ellas. Para eso vamos a realizar una serie de actividades en las que tendremos que crear rutas absolutas o relativas de ficheros o directorios.
Ejercicio 1 – Rutas absolutas
Suponiendo que en el árbol de directorios que se muestra en la imagen, los ficheros son los recuadros en verde, deberás determinar la ruta absoluta de todos los ficheros, no de los directorios.
Solución
- /etc/mysql/data/alumnos/notas.db
- /etc/mysql/data/alumnos/holaMundo.c
- /etc/network/interfaces
- /home/maria/busca.sh
- /home/ana/Desktop/holaMundo.sh
- /mnt/windows/autoexec.bat
- /mnt/cdrom/autorun.inf
- /dev/sda1
Ejercicio 2 – Rutas relativas
Ahora vamos a determinar las rutas relativas de todos los ficheros. Para ello necesitamos conocer cual es la ruta del directorio actual o de trabajo. En este ejercicio, el directorio de trabajo o actual será /mnt/windows.
Ficheros
- notas.db
- (dentro del árbol de directorios etc) holaMundo.c
- (dentro del árbol de directorios home) holaMundo.c
- interfaces
- busca.sh
- holaMundo.c
- autoexec.bat
- autrun.inf
- sda1
Solución
../../etc/mysql/data/alumnos/notas.db
../../etc/mysql/data/alumnos/holaMundo.c
../../etc/network/interfaces
../../home/maria/busca.sh
../../home/ana/Desktop/holaMundo.c
autoexec.bat ó ./autoexec.bat
../cdrom/autrun.inf
../../dev/sda1
Ejercicio 3 – Rutas relativas
Ahora vamos a determinar las rutas relativas de todos los ficheros. Para ello necesitamos conocer cual es la ruta del directorio actual o de trabajo. En este ejercicio, el directorio de trabajo o actual será /home/ana/Desktop.
Solución
- ../../../etc/mysql/data/alumnos/notas.db
- ../../../etc/mysql/data/alumnos/holaMundo.c
- ../../../etc/network/interfaces
- ../../maria/busca.sh
- holaMundo.c ó ./holaMundo.c
- ../../../mnt/windows/autoexec.bat
- ../../../mnt/cdrom/autorun.inf
- ../../../dev/sda1
Ejercicio 4 – Rutas relativas
En este ejercicio vamos a determinar la ruta relativa de un fichero del que nos dan su ruta absoluta y la ruta del directorio actual.
Directorio actual | Ruta destino (absoluta) | Ruta relativa | |
/home/javier/datos | /home/alfredoff/Desktop | ||
/etc/network | /etc/passwd | ||
/home/alfredoff/docs | /home/alfredoff/leeme.txt | ||
C:\Windows\System32 | C:\Users\javier | ||
D:\SSOO\Windows | D:\Backup | ||
E:\Videos\Musica\Blues | E:\Audio\Musica\Rock\80s | ||
F:\Documentos\Facturas\20202 | C:\Backup\Facturas | ||
C:\Users\javier | C:\Users\javier\notas.txt |
Solución
La solución al ejercicio sería:
Directorio actual | Ruta destino (absoluta) | Ruta relativa | |
/home/javier/datos | /home/alfredoff/Desktop | ../../alfredoff/Desktop | |
/etc/network | /etc/passwd | ../passwd | |
/home/alfredoff/docs | /home/alfredoff/leeme.txt | ../leeme.txt | |
C:\Windows\System32 | C:\Users\javier | ..\..\Users\javier | |
D:\SSOO\Windows | D:\Backup | ..\..\Backup | |
E:\Videos\Musica\Blues | E:\Audio\Musica\Rock\80s | ..\..\..\Audio\Musica\Rock\80s | |
F:\Documentos\Facturas\2020 | C:\Backup\Facturas | No se puede, porque no están en la misma unidad lógica. | |
C:\Users\javier | C:\Users\javier\notas.txt | notas.txt ó .\notas.txt |
Ejercicio 5 – Rutas relativas
En este ejercicio vamos a determinar la ruta absoluta de un fichero del que nos dan su ruta relativa y la ruta del directorio actual.
Directorio actual | Ruta destino (relativa) | Ruta absoluta | |
/home/javier/datos | ../Desktop/imagen.jpg | /home/javier/Desktop/imagen.jpg | |
/etc/network | ../../var/www/index.html | /var/www/index.html | |
/home/alfredoff/docs | ./windows/admin/datos.log | /home/alfredoff/docs/windows/admin/datos.log | |
C:\Windows\System32 | ..\..\Users\Javier\examen.txt | C:\Users\Javier\examen.txt | |
D:\SSOO\Windows | Server\2016\intro.odt | D:\SSOO\Windows\Server\2016\intro.odt | |
E:\Videos\Musica\Blues | ..\..\Peliculas\Tenet.mp4 | E:\Videos\Peliculas\Tenet.mp4 | |
F:\Documentos\Facturas\2020 | ..\2019\datos.ods | F:\Documentos\Facturas\2019\datos.ods | |
C:\Users\javier | .\imagenes\educatica.jpg | C:\Users\javier\imagenes\educatica.jpg |