Módulo 1: La terminal y el sistema de archivos

8. Proyecto: búsqueda del tesoro por tu máquina

Descripción

Vas a recorrer tu propia computadora y responder doce preguntas concretas sobre ella —dónde vive tu home, qué hay en /etc, cuál es tu archivo más reciente, qué hace una opción de ls que nunca usaste— y vas a entregar cada respuesta acompañada del comando exacto que la produjo, no de una impresión general. No vas a crear ni borrar un solo archivo: todo lo que necesitas para responder ya existe en tu máquina y ya lo sabes usar. Esta es la última lección del módulo y su objetivo es que salgas de ella confiando en que puedes orientarte en cualquier sistema de archivos —el tuyo, el de un compañero o el de un servidor remoto que verás en el módulo 5— sin que nadie te dé un mapa dibujado a mano.

Esto reproduce dos situaciones reales del primer año de cualquier persona que trabaja con computadoras a diario. La primera: te entregan una laptop nueva de la empresa, con una cuenta de usuario que no configuraste tú, y el primer día nadie te va a explicar dónde vive cada cosa —lo averiguas tú, con los mismos doce tipos de pregunta que vas a responder aquí—. La segunda, más común de lo que parece: alguien te pide ayuda por videollamada, no puedes ver su pantalla, y tienes que guiarlo a encontrar un archivo en su propia terminal solo con palabras. En ambos casos, la habilidad que importa no es "conocer de memoria todos los comandos", es poder pararte en cualquier sistema de archivos y sacarle información concreta usando lo que ya sabes, más el manual cuando algo no lo sabes.

Conexión con el módulo: esta lección no introduce comandos nuevos —con una única excepción puntual: la opción -1 de ls, que vas a descubrir tú mismo leyendo su manual, exactamente como practicaste en la lección 5—. Todo lo demás es pwd (lección 7), cd con rutas absolutas, relativas, ~ y - (lección 7), ls con -l, -a, -h, -t, -S y -R (lección 7), tree (lección 7), la distinción entre ruta absoluta y relativa (lección 6), la anatomía de un comando (lección 4) y la costumbre de leer el manual en vez de adivinar (lección 5). El módulo 2 te va a enseñar a crear, copiar, mover y borrar archivos, y a filtrar cientos de ellos con find y grep en segundos; antes de llegar ahí, esta lección te pone a prueba con las herramientas de solo lectura que ya tienes, para que sientas en carne propia dónde empieza a doler contar y buscar a mano.

Explorar sin modificar el terreno

Un cartógrafo que llega a un territorio nuevo no lo altera para entenderlo: no mueve piedras, no corta árboles, solo camina, mide y anota. Cuando termina, tiene un mapa que cualquier otra persona puede seguir sin haber pisado el lugar. Esa es exactamente la disciplina de esta lección: vas a recorrer tu propia máquina —un territorio que ya conoces de vista, pero probablemente nunca mediste con precisión— y vas a anotar cada hallazgo con el comando que lo reveló, no con "creo que" o "me parece que".

La diferencia entre "creo que mi home tiene pocos archivos ocultos" y "mi home tiene 23 archivos ocultos, según ls -a ~" es la diferencia entre una opinión y una evidencia reproducible. Cualquier otra persona —o tú mismo, en seis meses— puede correr el mismo comando en la misma máquina y llegar al mismo número. Esa reproducibilidad es lo que vale en un reporte de auditoría, en un ticket de soporte, o en la respuesta que le das a un compañero que te pregunta "¿y en tu máquina cómo se ve esto?".

Ejemplo trabajado

Antes de lanzarte a las doce preguntas, veamos una completa de principio a fin, porque tiene una vuelta de tuerca que las demás no tienen: qué hace ls cuando el destino no es una carpeta común, sino un enlace simbólico.

La pregunta: ¿qué contiene /etc y quién es su propietario?

Paso 1 — el propietario, con lo que ya sabes:

ls -la /etc

Qué esperar (esta salida es de una máquina macOS de referencia; en Linux, incluido WSL, vas a ver algo distinto, y te explico por qué más abajo):

lrwxr-xr-x@ 1 root  wheel  11 30 sep 2024 /etc -> private/etc

Interpretación, columna por columna, igual que en la lección 7: el primer carácter es l, no d ni - —es un enlace simbólico, no una carpeta común—. La flecha -> te dice hacia dónde apunta: private/etc. Las columnas de propietario y grupo son root y wheel: en macOS, todo el árbol del sistema pertenece al usuario root y al grupo wheel. Fíjate que ls -la no te mostró el contenido de /etc, sino la línea que describe al enlace en sí mismo. Eso pasa porque, cuando le das a ls -l la ruta de un enlace simbólico como argumento directo, el comando describe el enlace, no lo que hay del otro lado.

Paso 2 — el contenido real, siguiendo el enlace:

Para que ls atraviese el enlace y te muestre lo que hay adentro, agrega una barra al final de la ruta:

ls -la /etc/

Qué esperar (recortado; en tu máquina el número de líneas va a ser distinto):

total 872
drwxr-xr-x  79 root  wheel   2528 20 jul 19:27 .
drwxr-xr-x   6 root  wheel    192 21 jul  8:36 ..
-rw-r--r--   1 root  wheel    515 30 sep 2024 afpovertcp.cfg
lrwxr-xr-x   1 root  wheel     15 30 sep 2024 aliases -> postfix/aliases
-rw-r-----   1 root  wheel  16384  3 jun 20:38 aliases.db

Interpretación: la barra final (/etc/ en vez de /etc) le dice a ls "entra ahí", no "descríbeme esta ruta". Es la misma distinción entre ruta-como-destino y ruta-como-descripción que viste en la lección 6, aplicada a un caso donde además hay un enlace de por medio. Ahora sí ves contenido real: archivos de configuración (.cfg), bases de datos (.db) y hasta otro enlace simbólico dentro (aliases -> postfix/aliases), todos con propietario root:wheel.

Si estás en Linux o en WSL, /etc casi siempre es una carpeta real, no un enlace —vas a ver d en la primera columna de ls -la /etc, no l—, y el propietario típico es root:root en vez de root:wheel. En ese caso no necesitas la barra final: ls -la /etc ya te muestra el contenido directamente, porque no hay ningún enlace que atravesar.

La respuesta completa que anotarías en tu bitácora: "/etc es propiedad de root (grupo wheel en macOS, root en Linux/WSL); es un enlace simbólico a private/etc en macOS o una carpeta real en Linux/WSL; contiene decenas de archivos de configuración del sistema, todos propiedad de root. Comandos usados: ls -la /etc y ls -la /etc/."

Ese es el nivel de detalle que se espera en las once preguntas que siguen: comando exacto, resultado real, interpretación en una o dos frases.

Las doce preguntas de la búsqueda

Las preguntas están agrupadas en tres bloques que corresponden a las tres herramientas centrales del módulo. No hay un orden obligatorio entre bloques, pero dentro de cada uno conviene ir en orden porque cada pregunta se apoya un poco en la anterior. Ninguna requiere permisos de administrador (sudo); si en algún punto un comando te pide contraseña o te devuelve Permission denied, es una señal de que te desviaste del camino pensado —revisa la tabla de errores comunes más abajo—.

Grupo 1 — Orientarte con pwd y cd

Pregunta 1. ¿Cuál es la ruta absoluta de tu directorio home?

cd ~
pwd

Anota la ruta completa que te devuelve pwd (algo como /Users/tu-usuario en macOS o /home/tu-usuario en Linux/WSL). Esa ruta es tu punto de referencia para el resto de la búsqueda.

Pregunta 2. Partiendo de tu home, ¿cuál es el directorio más profundo al que llegas usando exactamente cinco cd?

No hay una ruta correcta: esta es la parte de "búsqueda del tesoro" de verdad. Elige tú por dónde explorar —puedes mezclar rutas relativas y absolutas—, pero corre pwd después de cada cd y anota los seis resultados (el de salida y uno por cada paso). Al final, cuenta cuántas barras (/) tiene tu ruta final: ese número es una medida honesta de qué tan "profundo" llegaste, más allá de la sensación.

cd ~
pwd
cd Library
pwd
cd "Application Support"
pwd
# ...continúa hasta completar cinco cd en total

Pregunta 3. ¿Cuál es la ruta relativa desde tu home hasta /etc, usando .. cuando haga falta?

Piénsala antes de escribirla, después verifícala con cd:

cd ~
cd ../../etc
pwd

Si pwd te devuelve /etc (o el símbolo que representa a /etc en tu sistema), tu ruta relativa era correcta. Si te da No such file or directory o te deja en un lugar inesperado, tu home probablemente está a una profundidad distinta de dos niveles bajo la raíz —ajusta la cantidad de .. y vuelve a intentar—.

Pregunta 4. Después de moverte a /etc con una ruta absoluta y volver con cd -, ¿a qué directorio te regresó exactamente, y coincide con tu respuesta de la pregunta 1?

cd /etc
cd -
pwd

Grupo 2 — Inspeccionar con ls

Antes de arrancar este bloque, dale a tu home un vistazo panorámico con la herramienta de la lección 7:

tree -L 2 ~

(Si no tienes tree instalado, usa la alternativa que viste en esa lección.) No hace falta que documentes esta salida; es solo para orientarte antes de contar con precisión.

Pregunta 5. ¿Cuántos archivos y carpetas ocultos hay directamente dentro de tu home, sin contar . y ..?

ls -a ~

Cuenta a simple vista cuántas entradas empiezan con un punto. La aclaración de "sin contar . y .." no es un tecnicismo caprichoso: esas dos entradas siempre van a aparecer en cualquier carpeta del sistema —representan "aquí mismo" y "un nivel arriba"—, no son archivos que alguien haya ocultado a propósito. Contarlas como si fueran hallazgos infla tu número en dos de más.

Pregunta 6. ¿Cuál es el archivo modificado más recientemente en tu escritorio?

ls -lt ~/Desktop

La t ordena de más reciente a más antiguo, así que el primer archivo listado después de la línea total es tu respuesta. Si tu sistema no tiene una carpeta de escritorio en inglés —algunos sistemas instalados en español usan Escritorio, y algunas instalaciones de WSL no tienen ninguna de las dos por defecto—, usa la carpeta real que encuentres con ls -a ~, o tu carpeta de Documentos como alternativa.

Pregunta 7. ¿Qué contiene /etc y quién es su propietario? (Ya la resolviste en el ejemplo trabajado; aquí solo confirma el resultado en tu propia máquina y anótalo en tu bitácora con tus propios números.)

Pregunta 8. ¿Cuál es el archivo o carpeta de mayor tamaño dentro de tu carpeta de Descargas?

ls -lhS ~/Downloads

-S ordena de mayor a menor tamaño y -h te da ese tamaño en unidades legibles (K, M, G) en vez de un número de bytes que hay que interpretar a ojo. Si tu carpeta de Descargas está vacía o no existe, usa Documentos.

Grupo 3 — Leer el manual

Pregunta 9. Según man ls, ¿qué hace exactamente la opción -1?

man ls

Busca la entrada de -1 (en less, que es lo que abre man, escribe /-1 y presiona Enter para saltar directo ahí, tal como viste en la lección 5). Vas a encontrar algo como: "(El dígito numérico 'uno'.) Fuerza que la salida tenga una entrada por línea." Pruébala:

ls -1 ~

Compárala con un ls ~ sin banderas: la diferencia visual —una columna contra varias— es la prueba de que entendiste bien lo que dice el manual.

Pregunta 10. Según man ls, ¿cuál es la diferencia entre ordenar con -t y con -S?

Ya usaste ambas en las preguntas 6 y 8; ahora ve al manual y confirma con tus propias palabras qué criterio usa cada una para decidir el orden (una ordena por fecha de modificación, la otra por tamaño en bytes) y en qué dirección lo hace cada una (¿el primero de la lista es el más reciente o el más viejo? ¿el más grande o el más chico?).

Pregunta 11. cd no tiene manual propio como ls —es parte de la shell, no un programa separado, tal como viste en la lección 5—. ¿Cómo consultas su ayuda en tu shell, y qué te dice sobre el argumento -?

help cd

(En zsh, si help cd no funciona, prueba man zshbuiltins y busca la entrada de cd con /cd dentro de less.) Confirma con tus propias palabras qué hace cd - —debería coincidir con lo que ya observaste al responder la pregunta 4—.

Pregunta 12. Usando tldr ls (o man ls si no tienes tldr instalado), ¿qué ejemplo da para combinar tamaños legibles con formato largo en un mismo comando?

tldr ls

Busca el ejemplo que combina -l con -h (el mismo par de banderas que usaste en la pregunta 8, ahora confirmado desde una fuente distinta a man). Si no tienes tldr instalado, la lección 5 ya te mostró cómo conseguirlo o qué alternativa usar.

La bitácora: tu entregable

El entregable real de esta lección no es la terminal, es el documento que escribes después. Ábrelo con el editor que viste en la lección 5 de este módulo o con cualquiera que prefieras, y complétalo con tus doce respuestas siguiendo el mismo patrón del ejemplo trabajado: pregunta, comando, resultado, interpretación en una frase.

# Búsqueda del tesoro — mi máquina

## 1. Ruta absoluta de mi home
Comando: cd ~ && pwd
Resultado: /Users/mi-usuario
Interpretación: es el punto de partida para el resto de la búsqueda.

## 2. Directorio más profundo en cinco cd
Comando: (lista de cd y pwd, uno por uno)
Resultado: /Users/mi-usuario/Library/Application Support/...
Interpretación: 6 niveles de profundidad contando las barras.

## 3. Ruta relativa hasta /etc
...

Repite el patrón para las doce. Un documento de doce entradas cortas y verificables vale más que un párrafo largo de impresiones generales.

Checklist de autoevaluación

Antes de dar por cerrada la lección, confirma cada uno de estos puntos:

  • Mi bitácora tiene doce entradas, una por pregunta, y ninguna quedó en blanco.
  • Cada entrada tiene comando, resultado e interpretación —no solo el número o el nombre suelto—.
  • No usé sudo en ningún comando de esta lección.
  • No creé, moví ni borré ningún archivo o carpeta real (los únicos comandos que corrí fueron pwd, cd, ls, man, help y tldr).
  • En la pregunta 5, mi conteo de ocultos no incluye a . ni a ...
  • En la pregunta 2, anoté la salida de pwd después de cada cd, no solo la última.
  • Puedo explicar con mis propias palabras la diferencia entre -t y -S sin volver a abrir el manual.
  • Si mi sistema no tenía Desktop o Downloads con ese nombre exacto, usé el nombre real que encontré con ls -a ~.

Errores comunes

Qué pasaPor qué pasaCómo lo detectasCómo lo corriges
Contaste dos archivos ocultos "de más" en la pregunta 5, comparado con lo que esperabas.Confundiste . y .. —las entradas que representan "esta carpeta" y "la carpeta de arriba"— con archivos ocultos reales. Es un malentendido conceptual: ls -a siempre las muestra en cualquier carpeta del sistema, no son un hallazgo de tu configuración.Corre ls -a en dos carpetas completamente distintas: . y .. van a aparecer en ambas, idénticas en nombre. Un archivo oculto de verdad, como .bash_profile, solo aparece donde de verdad existe.Resta dos de tu conteo, o filtra a simple vista descartando esas dos entradas antes de contar.
cd: no such file or directory: Desktop (o Downloads).Tu sistema tiene esas carpetas con nombre traducido —Escritorio, Descargas— porque el sistema operativo se instaló en español, o directamente no existen porque estás en una instalación mínima de Linux o WSL.Corre ls -a ~ y mira los nombres reales de las carpetas de tu home; el nombre en inglés de un tutorial no es garantía de que exista en tu máquina.Usa el nombre que de verdad ves listado. Si ninguna variante existe, usa Documents/Documentos o tu propio home como alternativa —ya lo advertimos en las preguntas 6 y 8—.
Al explorar los cinco cd de la pregunta 2 te aparece Permission denied y la terminal no se mueve.Intentaste entrar a una carpeta del sistema para la que tu usuario no tiene permiso de ejecución (el permiso que habilita "entrar", distinto del de "leer", aunque eso lo profundiza el módulo 4). Pasa típicamente al curiosear por /root, /private/var/db o rutas similares reservadas para el administrador.El mensaje mismo es la señal: Permission denied en un cd, no en un ls, casi siempre significa carpeta restringida, no un error de escritura en el nombre.No fuerces con sudo —esta lección es de solo lectura y sin privilegios—. Retrocede con cd .. y elige otra rama del árbol para completar tus cinco pasos.

Ejercicios

Estos cuatro ejercicios usan datos fijos, no tu máquina, para que puedas verificar tu respuesta contra una solución exacta.

Ejercicio 1: contar ocultos sin caer en la trampa

Un compañero corre ls -a en una carpeta y obtiene esta salida:

.
..
.env
.gitignore
config.yaml
README.md
.cache

Dice: "hay cinco archivos ocultos". ¿Está en lo correcto?

Ver solución

No. Hay tres archivos ocultos reales: .env, .gitignore y .cache. Las entradas . y .. no son archivos ocultos que alguien haya creado a propósito: representan "esta carpeta" y "la carpeta de arriba", y aparecen en la salida de -a en absolutamente cualquier directorio del sistema. Contarlas como hallazgos es el mismo error conceptual de la tabla de arriba.

Por qué funciona: filtrar . y .. antes de contar es la única forma de que el número refleje archivos reales del proyecto, no artefactos estructurales de cualquier carpeta.

Ejercicio 2: ruta relativa entre dos puntos

Estás parado en /home/ana/projects/site/src y necesitas llegar a /home/ana/docs usando una ruta relativa (sin escribir la ruta absoluta completa). ¿Qué comando usas?

Ver solución
cd ../../../docs

Por qué funciona: desde src hace falta subir tres niveles para llegar a ana (srcsiteprojectsana), y desde ahí bajar a docs. Cada .. sube un nivel exacto en el árbol; contar los niveles de diferencia entre origen y destino, en vez de adivinar cuántos .. poner, es la técnica que evita rutas relativas incorrectas.

Ejercicio 3: leer un fragmento real de manual

Este es un fragmento real del manual de ls:

-S      Sort by size (largest file first) before sorting the
        operands in lexicographical order.

Según este fragmento, si corres ls -S en una carpeta con los archivos a.txt (10 bytes), b.txt (500 bytes) y c.txt (50 bytes), ¿en qué orden van a aparecer?

Ver solución

b.txt, c.txt, a.txt — de mayor a menor tamaño (500, 50, 10 bytes).

Por qué funciona: el fragmento dice explícitamente "largest file first" (el archivo más grande primero); -S no ordena alfabéticamente ni por fecha, ordena exclusivamente por tamaño en bytes, de mayor a menor.

Ejercicio 4: reconstruir el destino de una cadena de cd

Partiendo de /var/www, alguien ejecuta esta secuencia, una línea a la vez:

cd html
cd ../logs
cd ..
cd -

¿En qué directorio termina parado, después del último comando?

Ver solución

/var/www/logs.

Por qué funciona: paso a paso: cd html/var/www/html. cd ../logs → sube uno (/var/www) y baja a logs/var/www/logs. cd .. → sube uno → /var/www. cd - regresa al directorio anterior a ese último cd, es decir, a /var/www/logs —no al primero de toda la cadena—. cd - siempre apunta al directorio inmediatamente previo, no a un historial completo.

Resumen y siguiente paso

Antes de avanzar deberías poder:

  • Responder cualquier pregunta sobre "dónde está esto" o "quién es dueño de aquello" en un sistema de archivos que no conoces, combinando pwd, cd y ls con sus banderas.
  • Distinguir una ruta como destino (/etc) de una ruta como "entra y muéstrame el contenido" (/etc/), especialmente cuando hay un enlace simbólico de por medio.
  • Aprender el comportamiento de una opción de comando que nunca usaste —como -1— leyendo su manual en vez de buscar un tutorial que te la explique.
  • Entregar cada hallazgo con evidencia reproducible: comando exacto más resultado real, nunca una impresión suelta.

También tocaste, en carne propia, el límite de lo que puedes hacer con las herramientas de este módulo. Contaste archivos ocultos a simple vista porque no tenías con qué contarlos automáticamente. Miraste ls -lt de arriba abajo para encontrar el archivo más reciente, en vez de pedirle a la máquina que te diera directamente "el primero". Ese esfuerzo manual no es un defecto de esta lección: es la motivación exacta del módulo 2, donde vas a aprender a crear, copiar, mover y borrar archivos con seguridad, a leer archivos completos con cat, less, head y tail, y sobre todo a que find y grep hagan por ti, en una sola línea, exactamente el tipo de conteo y búsqueda que hoy hiciste a ojo.

Recursos