Dateinamen-Sanitizer

Fügen Sie eine Liste von Dateinamen ein und erhalten Sie eine bereinigte Version, die auf jedem Betriebssystem, in jedem ZIP-Archiv und in jedem CDN-Pfad funktioniert. Der Sanitizer wandelt Buchstaben mit Akzenten in reines ASCII um, entfernt Zeichen, die unter Windows nicht funktionieren (\ / : * ? " < > |), entfernt Steuerzeichen, reduziert Leerzeichen und ersetzt verbotene Sequenzen durch Ihre gewählte Ersetzung (Standard: Bindestrich). Nützlich vor dem Massen-Upload zu S3, dem Versenden eines Kursmaterials-ZIPs oder dem Beheben eines Imports von Fotos von einem alten NAS.

So sanitizieren Sie Dateinamen

  1. 1

    Fügen Sie die Dateinamen ein

    Einer pro Zeile, mit oder ohne Erweiterungen. Erweiterungen werden unverändert beibehalten.

  2. 2

    Wählen Sie die Ersetzung

    Wählen Sie das Zeichen, das verwendet wird, um unsichere Sequenzen zu ersetzen. Bindestrich (`-`) ist die sicherste Standardoption; Unterstrich (`_`) ist die retro Wahl.

  3. 3

    Führen Sie den Sanitizer aus

    Jeder Name wird getrimmt, in ASCII umgewandelt, von verbotenen Zeichen befreit und zusammengezogene Leerzeichen werden reduziert. Bleibt nichts übrig, wird daraus `file`.

  4. 4

    Überprüfen Sie vor dem Umbenennen

    Die Ausgabe listet nur die bereinigten Namen. Prüfen Sie sie daher auf Kollisionen (zwei Eingaben, die zur gleichen Ausgabe führen), bevor Sie vor Ort umbenennen.

Was ist unsicher und warum

Verschiedene Dateisysteme und Tools haben unterschiedliche Blacklists. Die sichere plattformübergreifende Schnittmenge ist enger, als die meisten Menschen denken.

Zeichen und Muster, die Dateinamen unsicher machen

Element Warum es unsicher ist
\ / : * ? " < > | Verboten unter Windows (NTFS, FAT).
ASCII-Steuerzeichen 0x00-0x1F Illegal auf den meisten Dateisystemen; brechen Shell-Skripte.
Führende/nachfolgende Leerzeichen Werden von Windows stillschweigend entfernt; unsichtbare Fehler.
Nachfolgende Punkte Werden von Windows stillschweigend entfernt.
Reservierte Namen CON, PRN, AUX, NUL, COM1..9, LPT1..9, alle auf Windows blockiert.
Unicode-Kombinationszeichen Lassen café gleich aussehen wie café, sind aber auf einigen Systemen unterschiedliche Dateinamen.
Emoji und Piktogramm-Glyphen Überstehen moderne Systeme, brechen aber ältere CI-Pipelines und CDN-Pfade.

Angewandte Normalisierungsschritte

  1. ASCII-Umwandlung. Buchstaben mit Akzenten werden zu ihrem einfachen Grundbuchstaben: café wird zu cafe, naïve zu naive. Schriften ohne ASCII-Entsprechung (CJK, Emoji) werden entfernt.
  2. Ersetzung verbotener Zeichen. \ / : * ? " < > | und Steuerzeichen werden zu Ihrem Ersetzungszeichen (Standard: Bindestrich).
  3. Leerzeichenreduzierung. Reihen von Leerzeichen und Tabs werden zu einem einzigen Ersetzungszeichen.
  4. Ränder kürzen. Führende und nachfolgende Punkte sowie Ersetzungszeichen werden entfernt; ein leeres Ergebnis wird zu file.
  5. Erweiterungen bleiben erhalten. Punkte innerhalb des Namens werden nicht ersetzt, sodass .pdf, .jpg, .tar.gz überleben; nur Punkte am Ende werden entfernt.

Tipps

  • Behalten Sie die Erweiterung. Punkte innerhalb eines Namens bleiben erhalten, sodass .pdf, .jpg, .tar.gz unverändert bleiben.
  • Überprüfen Sie auf Kollisionen. Résumé.pdf und Resume.pdf werden beide zu resume.pdf, weil Akzente immer umgewandelt werden. Überprüfen Sie die Ausgabe, bevor Sie vor Ort umbenennen.
  • Webpfade. Für URLs auch nach der Sanitierung prozentual kodieren, oder besser, halten Sie den URL-Slug als Teilmenge von [a-z0-9-], sodass eine Kodierung nie erforderlich ist.

Häufig gestellte Fragen

Für Webressourcen und plattformübergreifende ZIPs, ja, es vermeidet subtile Fehler, wenn eine Datei auf einen dateisensitiven Windows-Server hochgeladen und von einem dateisensitiven Linux-CDN verlinkt wird. Der Sanitizer ändert keine Groß-/Kleinschreibung, also setzen Sie die Kleinbuchstaben bei Bedarf selbst um. Für lokale Arbeiten ist es Geschmackssache.

Leerzeichen sind auf jedem modernen Betriebssystem legal, zwingen jedoch zur URL-Kodierung (%20), brechen viele Shell-Pipelines und verwirren ältere Tools. Sie durch einen Bindestrich zu ersetzen, beseitigt eine ganze Kategorie von Fehlern.

Der Sanitizer gibt immer reines ASCII aus. Buchstaben mit Akzenten werden umgewandelt (café wird zu cafe), Kyrillisch wird in eine lateinische Annäherung übertragen, und Zeichen ohne ASCII-Entsprechung (CJK, Thai, Emoji) werden entfernt. Wenn ein Zielsystem die ursprünglichen nicht-lateinischen Namen benötigt, bewahren Sie sie in einer separaten Datei auf.

Nein, die Liste wird während der Anfrage im Speicher sanitisiert und danach nicht gespeichert oder in ein Protokoll geschrieben.

Verwandte Tools

Tool in anderen Sprachen verfügbar