UC3M

Grado en Ing. Telemática/Sist. Audiovisuales/Sist. de Comunicaciones

Arquitectura de Sistemas

Septiembre 2017 - Enero 2018

13.4.2. Nombres de ficheros y rutas

Una vez sabemos el directorio actual en el que ejecutan los comandos, ¿cómo lo cambiamos? O más en general, ¿cómo se pueden referenciar ficheros y carpetas en el intérprete?

Linux organiza ficheros y carpetas en un estructura de árbol. Un fichero está siempre en una carpeta, y una carpeta puede contener ficheros y subcarpetas. La carpeta de más alto nivel en esta jerarquía en Linux siempre tiene el nombre /. Cuidado con la inclinación de esta barra, pues \ tiene otro significado diferente.

Todo fichero o carpeta tiene una ruta absoluta que es la secuencia de carpetas que se atraviesan desde la raíz separadas por el símbolo / y que termina con su propio nombre. Por ejemplo, /dirA/dirB/dirC/fichero.txt es la ruta absoluta del fichero fichero.txt almacenado en la carpeta dirC que a su vez está contenida en la carpeta dirB, a su vez contenida en la carpeta dirA almacenada en la raíz del sistema de ficheros. El programa konsole que abre la ventana con el intérprete está configurado para mostrar la ruta absoluta del directorio actual en la barra de título de la ventana tal y como se muestra en la figura 13.1.

A todo usuario en Linux se le asigna una carpeta a partir de la cual puede almacenar sus ficheros. El intérprete permite abreviar su ruta con el símbolo ~. El comando ls sin ningún dato adicional muestra los ficheros en el directorio actual, pero si tras el nombre del comando se escribe una ruta, muestra los ficheros en esa ruta. Por tanto, el comando ls ~ muestra los ficheros en la carpeta del usuario.

Además de las carpetas y ficheros creados por el usuario o los programas, toda carpeta Linux tiene dos subcarpetas definidas por defecto:

  • ..: Es la carpeta del nivel superior en la jerarquía de ficheros que contiene a esta. Esta subcarpeta también esta presente en la raíz del sistema de ficheros (la carpeta con ruta absoluta /), pero apunta a si misma.

  • .: Es la propia carpeta que aparece como si fuese también una subcarpeta. Se puede considerar como una autoreferencia o apuntador a si misma.

Estas carpetas son a todos los efectos carpetas normales en el sistema; es decir, se pueden utilizar en las rutas. Por ejemplo, la ruta /dirA/dirB/dirC/../fichero2.txt se refiere al fichero que está almacenado en la carpeta dirB, pues desde dirC, la carpeta .. apunta a su predecesor, dirB. La siguiente figura muestra la interpretación de esta ruta así como el equivalente de las carpetas .. y ..

Figura 13.2. Ruta absoluta que contiene la carpeta ..

Ruta absoluta que contiene la carpeta ..

Como consecuencia de la existencia de las carpetas . y .., un fichero puede tener múltiples rutas absolutas equivalentes. Por ejemplo, las siguientes rutas se refieren todas al fichero.txt de la figura 13.2: /dirA/dirB/dirC/../dirC/fichero.txt, /dirA/dirB/dirC/./././fichero.txt, /dirA/dirB/dirC/../../../dirA/dirB/dirC/./fichero.txt, etc. Utiliza el comando ls para mostrar por pantalla el contenido de las carpetas de los niveles superiores del directorio actual hasta la carpeta raíz.

La rutas absolutas identifican de manera única cualquier fichero o carpeta en el sistema, pero pueden llegar a ser muy largas y por tanto costosas para escribir en un comando en el intérprete. La alternativa es utilizar rutas relativas.

Una ruta relativa es una secuencia de nombres de carpetas separadas por / que no comienza por el símbolo / (si lo hiciera sería una ruta absoluta) y que se interpretan considerando como prefijo el directorio actual. Asumiendo que el directorio actual del intérprete es dirC la siguiente figura muestra la interpretación de diferentes rutas relativas. Nótese que ninguna de ellas comienza por el /.