Curso de Linux / Rutas absolutas y relativas y directorios principales

El sistema de archivos de Linux se puede ver como un solo árbol de directorios que comienza en /. La ubicación de un archivo se indica mediante una ruta, y al distinguir entre la ruta relativa, que se escribe en relación con la ubicación actual, y la ruta absoluta, que comienza desde /, es más fácil determinar sobre qué archivo actúa un comando. En este curso se aprenderá cómo leer rutas y la función de los directorios que se encuentran con frecuencia.

La forma de cambiar la ubicación actual y verificar rutas se puede practicar directamente en Explorando directorios con pwd·cd·ls.

Un sistema de archivos que se conecta en un solo árbol

A diferencia de las letras de unidad de Windows, en Linux, archivos y directorios se continúan debajo del directorio raíz /. Incluso cuando se conectan discos o sistemas de archivos separados, normalmente se adjuntan a algún directorio del árbol. A esta conexión se le llama montar. Solo con ver la forma del árbol no se puede saber en qué disco se almacenan realmente los archivos.

/ y /root son diferentes. / es el punto de inicio de todo el árbol, y /root generalmente es el directorio home de la cuenta del administrador (root). El directorio home de los usuarios comunes suele ser /home/USUARIO, pero según la configuración de la cuenta, podría estar en otra ubicación.

Rutas absolutas y rutas relativas

Una ruta absoluta comienza con /. Por ejemplo, /etc/hosts señala la misma ubicación sin importar dónde se encuentre actualmente. Una ruta relativa se interpreta en función del directorio de trabajo actual. Si la ubicación actual es /home/learner, entonces notes/todo.txt significa /home/learner/notes/todo.txt.

Notación Significado Ejemplo
/ Punto de inicio del árbol del sistema de archivos /etc/hosts
. Directorio actual ./script.sh
.. Directorio superior ../notes
~ Expandido al directorio home del usuario actual en el shell ~/notes

. representa el directorio actual y .., su directorio padre. En Bash, un prefijo ~ sin comillas se expande al directorio personal antes de ejecutar el comando; esta expansión es una función del shell. Si escribe '~/notes' entre comillas simples, Bash conserva el carácter ~ literal y no lo sustituye por la ruta personal.

En las rutas, se usa / como separador y normalmente se distingue entre mayúsculas y minúsculas; el comportamiento concreto depende del sistema de archivos y de las opciones de montaje. Por lo tanto, Notes y notes pueden ser nombres diferentes. Las rutas que contienen espacios deben estar entre comillas como 'project notes' o los espacios deben ser escapados para ser pasadas como un solo argumento.

Rol de los directorios principales

La siguiente tabla muestra los roles comunes de ubicaciones frecuentes. Dependiendo de la distribución y del método de instalación, un directorio puede no existir o estar vinculado a otra ubicación, y no todos los archivos se colocan exactamente según la descripción de la tabla.

Ruta Rol común
/home Lugar donde se encuentran los directorios home de los usuarios normales
/etc Archivos de configuración del sistema y de servicios
/usr Programas y datos compartidos del espacio de usuario
/var Datos cuyo contenido cambia durante la operación, como registros y caché
/tmp Lugar donde se colocan archivos temporales
/dev Archivos que representan dispositivos
/proc, /sys Sistema de archivos virtual que muestra información del kernel y del sistema
/boot Lugar donde se colocan los archivos necesarios para el arranque
/mnt, /media Ubicación que se utiliza al conectar dispositivos de almacenamiento adicionales, etc.

No debe editar o eliminar las entradas /proc y /sys a ciegas como si fueran documentos normales. También evite almacenar información importante en /tmp durante períodos prolongados. Según la política del sistema, los archivos temporales pueden ser limpiados. Incluso si el propósito es cambiar la configuración, los archivos de /etc deben ser verificados y respaldados antes de modificarlos.

Práctica de lectura de rutas

Lea /home/learner/projects/report.txt de izquierda a derecha: / es el inicio del árbol; home, learner y projects son los directorios intermedios, y report.txt es el último componente. Un punto en el nombre no demuestra el tipo de archivo ni que exista.

Suponiendo que la ubicación actual sea /home/learner/projects, ../notes.txt apunta a notes.txt dentro del directorio superior /home/learner. Es necesario verificar por separado si esta ruta realmente existe. Leer la ruta y verificar la existencia del archivo son tareas diferentes.

Antes de ejecutar un comando, primero verifique 'dónde se encuentra actualmente' y 'si la ruta ingresada es una ruta absoluta o relativa'. Especialmente en comandos que mueven o eliminan archivos, si se interpreta incorrectamente una ruta relativa, se puede trabajar en un objetivo no intencionado. En el curso para comenzar con la terminal y el shell se puede ver cómo leer la estructura básica de los comandos.

Documentación oficial

El criterio común de organización de directorios se basó en el Estándar de Jerarquía de Sistemas de Archivos 3.0. Verifique la configuración real junto con la distribución y la configuración del sistema que esté utilizando.