Duración: 45 minutos Dificultad: Principiante
Al final de este capítulo, podrás:
- Leer archivos con la herramienta Read
- Editar archivos existentes con la herramienta Edit
- Crear nuevos archivos con la herramienta Write
- Buscar archivos con Glob
- Buscar contenido en archivos con Grep
- Entender rutas absolutas vs relativas
Claude puede leer cualquier archivo en tu sistema usando la herramienta Read.
Lee el archivo README.md
- Lee hasta 2000 líneas por defecto
- Muestra números de línea (formato
cat -n) - Puede leer archivos de cualquier tipo (texto, código, JSON, etc.)
- Puede leer imágenes, PDFs y notebooks de Jupyter
- Soporta offset y límite para archivos grandes
Tú: Lee el archivo package.json
Claude: [usa Read tool]
1→{
2→ "name": "mi-proyecto",
3→ "version": "1.0.0"
4→}
Tú: Lee solo las primeras 10 líneas de server.js
Claude: [usa Read con limit=10]
- Ruta absoluta:
/home/usuario/proyecto/src/main.py - Ruta relativa al directorio actual:
src/main.py
Claude entiende ambas, pero las rutas absolutas son más explícitas.
La herramienta Edit modifica archivos existentes mediante reemplazos exactos de texto.
- DEBES leer el archivo primero (Edit fallará si no lo has leído)
- Especificas el texto
old_string(lo que quieres reemplazar) - Especificas el texto
new_string(el reemplazo) - Claude hace el cambio
⚠️ Debes leer el archivo antes de editar- El
old_stringdebe ser único en el archivo (o usarreplace_all) - Debes preservar la indentación exacta
- No incluyas números de línea en las cadenas
Tú: En config.js, cambia el puerto de 3000 a 8080
Claude: [primero lee config.js]
1→const config = {
2→ port: 3000,
3→ host: 'localhost'
4→}
Claude: [usa Edit tool]
old_string: "port: 3000"
new_string: "port: 8080"
¡Listo! Cambié el puerto a 8080.
Si quieres reemplazar todas las ocurrencias:
Tú: Renombra la variable oldName a newName en todo el archivo
Claude: [usa Edit con replace_all: true]
La herramienta Write crea archivos nuevos (o sobrescribe existentes).
Tú: Crea un archivo llamado hello.py con un script simple
Claude: [usa Write tool]
- Write sobrescribirá archivos existentes
- Si el archivo existe, Claude debe leerlo primero
- Preferir Edit sobre Write para archivos existentes
- No crear archivos .md o README sin que lo pidas explícitamente
Tú: Crea un archivo utils.js con una función para formatear fechas
Claude: [usa Write]
file_path: /home/usuario/proyecto/utils.js
content:
function formatDate(date) {
return date.toISOString().split('T')[0];
}
module.exports = { formatDate };
Archivo creado: utils.js
Glob encuentra archivos por patrones de nombre.
| Patrón | Encuentra |
|---|---|
*.js |
Todos los archivos .js en el directorio actual |
**/*.py |
Todos los archivos .py en cualquier subdirectorio |
src/**/*.test.js |
Todos los archivos de test en src/ |
*.{ts,tsx} |
Archivos .ts o .tsx |
Tú: Encuentra todos los archivos TypeScript en src/
Claude: [usa Glob]
pattern: "src/**/*.ts"
Resultados:
src/main.ts
src/utils/helper.ts
src/components/Button.ts
- Cuando necesitas encontrar archivos por nombre o extensión
- Para ver la estructura del proyecto
- Antes de buscar contenido específico
Grep busca texto dentro de archivos usando expresiones regulares.
Tú: Busca la palabra "TODO" en todos los archivos JavaScript
Claude: [usa Grep]
pattern: "TODO"
type: "js"
| Parámetro | Función |
|---|---|
pattern |
El texto o regex a buscar |
type |
Tipo de archivo (js, py, rust, etc.) |
glob |
Patrón de archivos (ej: "*.tsx") |
output_mode |
"content", "files_with_matches", "count" |
-i |
Búsqueda sin importar mayúsculas |
-n |
Mostrar números de línea |
-A, -B, -C |
Líneas de contexto (después/antes/ambos) |
# Buscar función específica
Tú: Encuentra dónde se define la función getUserData
Claude: [usa Grep]
pattern: "function getUserData"
output_mode: "content"
# Buscar con contexto
Tú: Busca "ERROR" en logs y muéstrame 3 líneas antes y después
Claude: [usa Grep]
pattern: "ERROR"
glob: "*.log"
output_mode: "content"
-C: 3
- Glob: Busca archivos por nombre
- Grep: Busca contenido dentro de archivos
Ruta Absoluta (desde la raíz del sistema):
/home/motoko/dev/learningclaude/capitulo_02.md
Ruta Relativa (desde el directorio actual):
capitulo_02.md
./src/main.py
../otros-proyectos/config.json
Claude siempre trabaja desde un directorio específico. Puedes verlo con:
Tú: ¿Cuál es mi directorio actual?
Claude: [ejecuta pwd via Bash]
/home/motoko/dev/learningclaude
- Usa rutas relativas cuando trabajas en el proyecto actual
- Usa rutas absolutas cuando referencias archivos fuera del proyecto
- Verifica tu directorio actual si no estás seguro
- Lista todos los archivos .md en el directorio actual
- Lee el archivo COURSE_OUTLINE.md
- Pide a Claude que te resuma el contenido en 3 puntos
- Crea un archivo llamado
notas.txtcon el texto "Mis notas del capítulo 2" - Léelo para confirmar
- Edita el archivo para agregar una segunda línea: "Claude es increíble"
- Léelo de nuevo
- Encuentra todos los archivos de texto (.txt) en el directorio
- Encuentra todos los archivos Markdown (.md)
- Cuenta cuántos archivos hay en total
- Busca la palabra "Capítulo" en todos los archivos .md
- Busca cuántas veces aparece la palabra "Claude" en CLAUDE.md
- Encuentra en qué archivos se menciona "git"
Pregunta 1: ¿Cuál es la diferencia principal entre las herramientas Glob y Grep?
Pregunta 2: Verdadero o Falso: Puedes usar la herramienta Edit sin haber leído el archivo primero.
Pregunta 3: ¿Qué herramienta usarías para cada tarea?
- a) Encontrar todos los archivos Python: ___
- b) Buscar la palabra "import" dentro de archivos: ___
- c) Cambiar una línea específica en un archivo: ___
Completa estas tareas y muéstrame los resultados:
Tarea 1 (2 puntos):
- Crea un archivo llamado
mi_proyecto.json - Agrega este contenido:
{
"nombre": "Mi Primer Proyecto",
"version": "1.0.0",
"descripcion": "Aprendiendo Claude Code"
}Tarea 2 (2 puntos):
- Lee el archivo que acabas de crear
- Edítalo para cambiar la versión a "2.0.0"
- Agrégale un campo nuevo:
"autor": "Tu Nombre"
Tarea 3 (2 puntos):
- Usa Glob para encontrar todos los archivos .md en el directorio
- Usa Grep para buscar cuántos archivos mencionan la palabra "Examen"
Tarea 4 (1 punto):
- Escribe un buen prompt que le pida a Claude buscar todos los archivos TypeScript (.ts) en una carpeta src/ que contengan la palabra "interface"
Parte 1:
P1: [tu respuesta]
P2: [tu respuesta]
P3: a) ___, b) ___, c) ___
Simplemente realiza las tareas y dime "Completé la tarea X". Yo verificaré los resultados leyendo los archivos.
Una vez que apruebes este examen, dominarás las operaciones con archivos y estarás listo para el Capítulo 3: Trabajando con Git.
Siguiente: capitulo_03.md