Kodokon kodokon.com

Rutas relativas, rutas absolutas y comodines

Señala cualquier archivo con una ruta absoluta o relativa, y actúa sobre varios archivos a la vez.

8 min · 3 preguntas

Abrir esta lección en Kodokon

Hay dos maneras de decir dónde está un archivo, exactamente igual que al dar una dirección. La ruta absoluta es la dirección postal completa: parte de la raíz y funciona desde cualquier sitio. En macOS y Linux empieza siempre por una barra /, por ejemplo /home/yoann/my-project/index.html. En Windows empieza por una letra de unidad, por ejemplo C:\Users\yoann\my-project.

La ruta relativa, en cambio, se parece más a "la segunda puerta a la izquierda": parte de la carpeta en la que estás ahora mismo. Con tres símbolos basta para expresarlo todo. El punto . designa la carpeta actual. Los dos puntos .. designan la carpeta padre. La virgulilla ~ designa tu carpeta personal. Los encadenas con barras para construir un recorrido.

BASH
cd /home/yoann/my-project
cd ~/my-project
cd ../other-project
cat ./src/index.html
cp ../photo.jpg .
La misma carpeta alcanzada de forma absoluta y luego relativa, y una copia a la carpeta actual.

Cuando tienes que actuar sobre diez archivos, no vas a escribir diez comandos. El shell reconoce comodines, también llamados patrones: caracteres especiales que sustituyen a uno o varios caracteres desconocidos. El asterisco * sustituye a cualquier secuencia de caracteres, incluida una vacía. El signo de interrogación ? sustituye a exactamente un carácter. Los corchetes [ ] aceptan cualquiera de los caracteres que aparecen dentro.

BASH
ls *.html
ls src/*.css
ls photo-?.jpg
ls report-202[45].pdf
cp *.txt archive/
Todos los archivos .html, los .css de una subcarpeta, de photo-1 a photo-9, y los informes de 2024 y 2025.

Un último detalle que evita muchos disgustos: en macOS y Linux, los nombres de archivo distinguen entre mayúsculas y minúsculas. Photo.jpg y photo.jpg son dos archivos diferentes, y ls photo* no encontrará el primero. Windows no hace esa distinción. Por eso un proyecto que funciona en tu equipo Windows puede fallar en el servidor Linux que lo aloja, únicamente por culpa de una mayúscula.

Prueba de conocimientos

Comprueba que has retenido los puntos clave de esta lección.

  1. En macOS o Linux, ¿con qué empieza siempre una ruta absoluta?
    • Con un punto .
    • Con una barra /
    • Con una virgulilla ~
    • Con el nombre de la carpeta actual
  2. ¿A qué corresponde el patrón *.html?
    • A todos los archivos cuyo nombre termina en .html
    • Solo al archivo llamado exactamente *.html
    • A todos los archivos de la carpeta, sea cual sea su tipo
  3. Quieres eliminar todos los archivos .tmp sin correr riesgos. ¿Qué precaución tomas?
    • Ejecutar rm *.tmp y luego comprobar con ls
    • Ejecutar antes ls *.tmp para ver qué se va a eliminar
    • Ninguna, el shell siempre pide confirmación