Sanitizador de Nombres de Archivo

Pega una lista de nombres de archivo y obtén una versión limpia que sobrevivirá a cualquier sistema operativo, cualquier archivo ZIP, cualquier ruta de CDN. El sanitizador convierte las letras con acentos a ASCII puro, elimina caracteres que fallan en Windows (\ / : * ? " < > |), elimina caracteres de control, colapsa espacios en blanco y reemplaza secuencias prohibidas con tu reemplazo elegido (por defecto: guion). Útil antes de subir en masa a S3, enviar un archivo ZIP de material de curso o corregir una importación de fotos de un viejo NAS.

Cómo sanitizar nombres de archivo

  1. 1

    Pega los nombres de archivo

    Uno por línea, con o sin extensiones. Las extensiones se conservan tal cual.

  2. 2

    Elige el reemplazo

    Elige el carácter que se usará para reemplazar secuencias inseguras. El guion (`-`) es el más seguro por defecto; el guion bajo (`_`) es la opción retro.

  3. 3

    Ejecuta el sanitizador

    Cada nombre se recorta, se convierte a ASCII, se le eliminan los caracteres prohibidos y se colapsan los espacios. Si no queda nada, se convierte en `file`.

  4. 4

    Revisa antes de renombrar

    La salida solo enumera los nombres limpios, así que revísala para detectar colisiones (dos entradas que se convierten en la misma salida) antes de renombrar en su lugar.

Qué es inseguro y por qué

Diferentes sistemas de archivos y herramientas tienen diferentes listas negras. La intersección segura entre plataformas es más estricta de lo que la mayoría de la gente se da cuenta.

Caracteres y patrones que hacen inseguros los nombres de archivo

Elemento Por qué es inseguro
\ / : * ? " < > | Prohibido en Windows (NTFS, FAT).
Caracteres de control ASCII 0x00-0x1F Ilegales en la mayoría de los sistemas de archivos; rompen scripts de shell.
Espacios al principio/final Eliminados silenciosamente por Windows; errores invisibles.
Puntos finales Eliminados silenciosamente por Windows.
Nombres reservados CON, PRN, AUX, NUL, COM1..9, LPT1..9, todos bloqueados en Windows.
Marcas de combinación Unicode Hacen que café se vea igual que café pero sea un nombre de archivo diferente en algunos sistemas.
Glifos de emoji y pictogramas Sobreviven en sistemas modernos pero rompen pipelines de CI más antiguos y rutas de CDN.

Pasos de normalización aplicados

  1. Conversión a ASCII. Las letras con acentos se convierten en su base simple: café pasa a cafe, naïve a naive. Las escrituras sin equivalente ASCII (CJK, emoji) se eliminan.
  2. Reemplazo de caracteres prohibidos. \ / : * ? " < > | y los caracteres de control se convierten en tu carácter de reemplazo (por defecto: guion).
  3. Colapso de espacios en blanco. Secuencias de espacios y tabulaciones se convierten en un solo carácter de reemplazo.
  4. Recorte de bordes. Los puntos y caracteres de reemplazo iniciales y finales se eliminan; si el resultado queda vacío, se convierte en file.
  5. Las extensiones se conservan. Los puntos dentro del nombre no se reemplazan, así que .pdf, .jpg, .tar.gz sobreviven; solo se eliminan los puntos finales.

Consejos

  • Mantén la extensión. Los puntos dentro de un nombre se conservan, así que .pdf, .jpg, .tar.gz quedan tal cual.
  • Verifica colisiones. Résumé.pdf y Resume.pdf se convierten en resume.pdf, porque los acentos siempre se convierten. Revisa la salida antes de renombrar en su lugar.
  • Rutas web. Para URLs, también codifica en porcentaje después de sanitizar, o mejor, mantén el slug de la URL como un subconjunto de [a-z0-9-] para que nunca se necesite codificación.

Preguntas frecuentes

Para activos web y ZIPs multiplataforma, sí, evita errores sutiles cuando un archivo se sube a un servidor Windows que no distingue entre mayúsculas y minúsculas y se vincula desde un CDN Linux que sí lo hace. El sanitizador no cambia las mayúsculas, así que pasa los nombres a minúsculas tú mismo si lo necesitas. Para trabajo local es cuestión de gusto.

Los espacios son legales en todos los sistemas operativos modernos, pero obligan a la codificación de URL (%20), rompen muchos pipelines de shell y confunden herramientas más antiguas. Reemplazarlos con un guion elimina toda una categoría de errores.

El sanitizador siempre emite ASCII puro. Las letras con acentos se convierten (café pasa a cafe), el cirílico se transcribe a una aproximación latina y los caracteres sin equivalente ASCII (CJK, tailandés, emoji) se eliminan. Si algún sistema de destino necesita los nombres no latinos originales, guárdalos en un archivo aparte.

No, la lista se sanitiza en memoria durante la solicitud y no se almacena ni se escribe en ningún registro después.

Herramientas relacionadas

Herramienta disponible en otros idiomas