Cuando el disco se llena o no sabes dónde quedó un log, find es más potente que buscar a mano por carpetas.
Más allá del comando suelto, lo importante es el contexto: cuándo aplicarlo, cómo validar el resultado y qué efectos secundarios puede tener en producción.
A continuación verás el porqué, ejemplos concretos con explicación, un flujo paso a paso, errores típicos y buenas prácticas para usarlo con confianza.
💡 Para qué usarlo
- Encontrar ficheros enormes que llenan el disco
- Limpiar temporales antiguos
- Localizar configs por nombre en todo el árbol
- Tener un procedimiento repetible reduce el tiempo de incidente
- Documentar el enfoque ayuda al resto del equipo a operar igual de bien
🚀 Comandos y ejemplos
Por nombre:
find /etc -name "*.conf"
Adapta este ejemplo a tus paths y nombres reales antes de usarlo en producción.
Mayores de 100MB:
find /var -type f -size +100M -ls
Adapta este ejemplo a tus paths y nombres reales antes de usarlo en producción.
Modificados hace más de 30 días:
find /tmp -type f -mtime +30
Adapta este ejemplo a tus paths y nombres reales antes de usarlo en producción.
Borrar con cuidado (dry-run mental):
find /var/log -name "*.gz" -mtime +90 -print
Revisa la lista antes de añadir -delete.
Buscar por usuario dueño:
find /home -user deploy -type f
Útil tras migraciones o para localizar restos de un usuario.
Ejecutar comando sobre resultados:
find /var/log -name "*.log" -mtime +60 -print
Lista primero. Solo cuando la lista sea correcta considera -delete o -exec.
🔧 Ejemplo práctico paso a paso
1. Confirma que es espacio en disco (o inodos)
Alerta típica: disco al 95%. Primero df -h y df -i. Si los inodos están al 100%, buscar ficheros enormes no basta: habrá millones de ficheros pequeños.
2. Localiza el directorio pesado
sudo du -xh /var --max-depth=2 | sort -h | tail -20
Supongamos que /var/log destaca. Ahí concentrarás el find.
3. Lista candidatos antes de borrar
sudo find /var/log -type f -name '*.gz' -mtime +30 -ls | head -50
Revisa rutas: no quiero borrar un .gz que aún necesitas para auditoría.
4. Borra solo el conjunto validado
sudo find /var/log -type f -name '*.gz' -mtime +30 -delete
df -h /
Vuelve a mirar df. Si no bajó, el peso estaba en otro path (docker, journal, backups).
⚠️ Errores frecuentes
find / … -delete sin print previo. Un path mal escrito puede borrar configs. Siempre lista con -ls/-print y revisa.
Ignorar df -i. Disco “lleno” por inodos no se arregla borrando un ISO de 4GB; hay que eliminar muchos ficheros pequeños.
Buscar en / mientras el servidor está en pico. find sobre todo el árbol dispara I/O. Limita a /var, /home o el mount problemático.
💡 Buenas prácticas
- Empieza con
-printantes de borrar. - Limita el path de búsqueda; evita
find /en producción sin filtro. - Combina con
xargssolo cuando entiendas el riesgo. - Prefiere cambios reversibles y con rollback claro.
- Corrrelaciona siempre con logs y, si puedes, con una métrica simple.
- Si el procedimiento se repite, conviértelo en script versionado.
📝 Conclusión
Un buen find te ahorra horas de navegación y te ayuda a mantener discos bajo control.
Si practicas este flujo con calma en staging, en producción te saldrá casi automático. Guarda tus variantes locales (paths, unidades, convenciones del equipo) junto a estos ejemplos.