Sevilla, España
Sevilla, España
+(34) 624 816 969
Amo la terminal. Es rápida, es precisa, es la herramienta de un power user. Pero también la odio.
La odio cuando quiero hacer algo ligeramente complicado. Ayer mismo me pasó: "Vale, necesito encontrar todos los archivos .log de más de 100MB que se modificaron en la última semana, pero solo en mis carpetas de proyectos, ignorando node_modules".
Mi "flujo" habitual para esto es un desastre:
find . -name "*.log" ...). Falla.-mtime -7 es para días, no semanas.No es casualidad que cada vez más gente hable de IA generativa, pero casi siempre pensamos en ella como un "ChatGPT en la web" para escribir posts o resumir textos.
Mientras muchos siguen ahí, otros estamos probando algo que, sinceramente, se siente como magia: integrar la IA directamente en la terminal.
Estoy hablando de herramientas como Gemini-CLI. Y no para preguntarle por el sentido de la vida, sino para gestionar mi propio ordenador. Lo estoy usando como un asistente personal de administración de sistemas que entiende lenguaje humano y "traduce" mis intenciones a comandos de Bash (o PowerShell, si estás en Windows) que yo ni en sueños me sabría de memoria.
Tabla de contenidos [Mostrar]
Primero, la aclaración técnica: un "Gemini-CLI" (o herramientas similares como aicli, sgpt, o las nuevas funciones de IA en herramientas como Warp o Fig) no es un "explorador de archivos" nuevo. No es un reemplazo de tu terminal.
Es un co-piloto.
Funciona de una de dos maneras:
Para este artículo, nos centraremos en el Modo Traductor, que es el más útil y seguro. La idea es que, en lugar de Google, le preguntas a la IA.
Vamos a asumir que tienes una herramienta de este tipo instalada y configurada con tu API Key. El comando podría ser gemini, ai, o similar. Lo importante es el prompt.
Aquí es donde la cosa se pone interesante. He dejado de pensar en sintaxis y he empezado a pensar en intención.
find Imposible (El del inicio)
El problema de "buscar logs grandes" que mencioné antes.
Mi prompt (lenguaje natural):
gemini "genérame un comando bash para encontrar archivos .log de más de 100MB en mi carpeta '~/Proyectos' que se hayan modificado en los últimos 7 días. Importante: ignora cualquier carpeta llamada 'node_modules' o '.git'"
La respuesta de la IA (en segundos):
# Comando sugerido:
find ~/Proyectos \( -name "node_modules" -o -name ".git" \) -prune -o \
-type f -name "*.log" -size +100M -mtime -7 -print
Seamos honestos. Yo jamás habría llegado a esa sintaxis de -prune -o por mi cuenta. Habría intentado un grep -v fallido. Esto es oro puro. La IA entendió la exclusión (que es la parte difícil) y la anidó correctamente con el resto de condiciones (-type f, -size, -mtime).
Otro clásico. Tienes una carpeta llena de fotos de la cámara: DSC_0512.jpg, DSC_0513.jpg, DSC_0514.jpg... Y quieres que se llamen Vacaciones-Sevilla-001.jpg, Vacaciones-Sevilla-002.jpg, etc.
Hacer esto a mano es impensable. Hacerlo con un script requiere pensar en bucles for, contadores, y cómo formatear los ceros a la izquierda (printf).
Mi prompt:
gemini "tengo un montón de archivos .jpg en esta carpeta. Quiero renombrarlos todos. El nuevo formato debe ser 'Vacaciones-Sevilla-[numero].jpg', donde [numero] sea un contador que empiece en 001 y tenga ceros a la izquierda. Dame el script para zsh"
La respuesta de la IA:
# Comando sugerido (para zsh/bash):
a=1
for i in *.jpg; do
new=$(printf "Vacaciones-Sevilla-%03d.jpg" "$a")
mv -i -- "$i" "$new"
let a=a+1
done
Una vez más, la IA sabe que necesito printf "%03d" para el padding de ceros. Sabe que debe usar mv -i (interactivo, para no sobrescribir por accidente) y el -- para manejar nombres de archivo raros. Es un script de calidad de producción, en 5 segundos.
find y rename: El Asistente Definitivo
Esto se pone mejor cuanto más específico eres.
tar y los Backups
¿Alguien se sabe de memoria la diferencia entre tar -czvf y tar -xzvf? Yo no. Siempre tengo que buscar cómo comprimir o descomprimir.
Mi prompt:
gemini "quiero crear un backup de mi carpeta '~/Documentos/Proyecto_Cliente'. Comprímelo en .tar.gz, que el nombre sea 'backup_cliente_fecha-de-hoy.tar.gz' y, por favor, excluye las carpetas 'dist' y 'cache' que están dentro"
La respuesta de la IA:
# Comando sugerido:
tar -czvf "backup_cliente_$(date +%Y-%m-%d).tar.gz" \
--exclude="dist" \
--exclude="cache" \
~/Documentos/Proyecto_Cliente
La IA no solo ha construido el comando tar (con c de crear, z de gzip, v de verbose, f de file), sino que además ha usado la sustitución de comandos de Bash ($(date +%Y-%m-%d)) para poner la fecha automáticamente en el nombre del archivo. Y ha añadido los –exclude correctamente. Es, simple y llanamente, una locura.
grep con esteroides)
"Sé que dejé una API key en algún archivo de configuración, pero no recuerdo dónde..."
Mi prompt:
gemini "busca recursivamente en todas las subcarpetas desde aquí un texto que empiece por 'sk_live_'. Solo muéstrame el nombre del archivo y la línea, y que sea 'case-insensitive'. No busques en archivos binarios."
La respuesta de la IA:
# Comando sugerido:
grep -r -i -I --line-number "sk_live_" .
-r (recursivo)-i (case-insensitive)-I (ignora binarios)--line-number (justo lo que pedí)Esto es mucho más rápido y específico que usar el buscador de VSCode o del explorador de archivos.
No todo es un camino de rosas. Mientras probaba esto, me di cuenta de un riesgo enorme.
¿Qué pasa si le pido "libera espacio en mi disco" y la IA decide que sudo rm -rf / es una buena idea? (Es un extremo, pero la idea se entiende).
Estamos en una fase en la que la IA sugiere, no ejecuta. Y debe seguir así, al menos hasta que confiemos plenamente en ellas. Mi regla de oro es:
Nunca ejecutes un comando de la IA que no entiendas al 100%.
Si la IA me da un script de 5 líneas, me tomo 10 segundos para leerlo. ¿Qué hace mv? Mover. ¿Qué hace rm? Borrar. ¿Qué hace ese find? Buscar. Si veo algo que no entiendo (dd if=/dev/null...), paro y pregunto.
La IA no es el piloto. Es el co-piloto que te lee el mapa y te sugiere la ruta. Tú sigues al volante.
Esto es solo el principio. Ya no veo la terminal como un muro de comandos crípticos que tengo que memorizar. La veo como una interfaz de intención.
La barrera de entrada para ser un "usuario avanzado" acaba de desplomarse. Ya no necesitas 20 años de experiencia en Unix para construir pipelines complejas en la terminal; necesitas saber describir bien lo que quieres.
Herramientas como el CLI de Gemini (o sus alternativas) son, para mí, el avance de productividad más importante desde los IDEs modernos. Están convirtiendo la temida pantalla negra en un lienzo en blanco donde, simplemente, pides lo que necesitas.
Y mientras la IA se encarga de la sintaxis del tar, yo puedo dedicarme a lo importante: que el backup se haga bien.