# Borrar archivos o directorios que comienzan por letra (A–Z/a–z)

## Objetivo

Eliminar **todos los archivos o carpetas cuyo nombre comience por una letra**, sin distinguir mayúsculas/minúsculas.  
Ideal para limpiezas de entorno sin afectar archivos ocultos ni aquellos que comiencen por números o símbolos.


## 🖥️ En macOS (Zsh)

Zsh no usa `shopt`, pero tiene su propia sintaxis de globbing avanzada.

### 1. Ver qué se va a borrar (modo seguro)

```zsh
setopt extended_glob
ls -d (#i)[[:alpha:]]*
```
2. Eliminar los archivos y carpetas

```zsh
setopt extended_glob
rm -Rf (#i)[[:alpha:]]*
```

#### 🧠 Explicación técnica
- *setopt* extended_glob activa los patrones avanzados de Zsh.
- *(#i)* activa insensibilidad a mayúsculas para todo el patrón.
- *[[:alpha:]]** coincide con cualquier nombre que empiece por letra (A–Z o a–z), de forma portable.

> 🔍 Ojo: patrones como (#i)[a-z]* no siempre funcionan como se espera, porque [a-z] sigue limitado al rango ASCII explícito. Usar **[[:alpha:]]** es más robusto.



## 🐧 En Linux (Bash)

Bash usa `shopt` para habilitar coincidencias insensibles a mayúsculas.

1. Ver qué se va a borrar

```zsh
shopt -s nocaseglob
ls -d [a-zA-Z]*
shopt -u nocaseglob
```

2. Eliminar los archivos y carpetas

```zsh
shopt -s nocaseglob
rm -Rf [a-zA-Z]*
shopt -u nocaseglob
```

#### 🧠 Explicación técnica
- *nocaseglob* hace que Bash trate los patrones como insensibles a mayúsculas.
- *[a-zA-Z]** coincide con nombres que comienzan por cualquier letra.



> ⚠️ Advertencias
> No borra archivos ocultos (*.env,* *.git,* etc.) ni nombres que empiecen con números (2023-img.png).
> 
> Usa ls antes de rm -Rf para confirmar qué se eliminará.
> 
> Si necesitas excluir ciertos nombres, puedes añadir filtros con grep -v, find, o usar listas de exclusión.


## 🔄 Alternativas útiles
### Mover en lugar de borrar:

```zsh
mkdir -p backup_letters
mv [a-zA-Z]* backup_letters/
```

### Ver el tamaño de los elementos que serán eliminados:

```zsh
du -sh [a-zA-Z]*
```

##### Aviso
Esta documentación y su contenido, no implica que funcione en tu caso o determinados casos. 
También implica que tienes conocimientos sobre lo que trata, y que en cualquier caso tienes copias de seguridad.
El contenido el contenido se entrega, tal y como está, sin que ello implique ningún obligación ni responsabilidad por parte de [Castris](https://castris.com)

Si necesitas soporte profesional puedes contratar con Castris [soporte profesional](https://intranet.castris.com/store/soporte-profesional).