Bestandsnaam-opschoner

Plak een lijst met bestandsnamen en krijg een opgeschoonde versie terug die het overleeft op elk besturingssysteem, in elk ZIP-archief en op elk CDN-pad. De opschoner zet letters met accenten om naar zuivere ASCII, verwijdert tekens die stukgaan op Windows (\ / : * ? " < > |), wist stuurtekens, voegt witruimte samen en vervangt verboden reeksen door het teken van jouw keuze (standaard: koppelteken). Handig voor het massaal uploaden naar S3, het uitleveren van een cursus-ZIP of het opschonen van een foto-import van een oude NAS.

Bestandsnamen opschonen

  1. 1

    Plak de bestandsnamen

    Eén per regel, met of zonder extensie. Extensies blijven ongewijzigd behouden.

  2. 2

    Kies het vervangteken

    Kies het teken dat onveilige reeksen vervangt. Het koppelteken (`-`) is de veiligste standaard; het onderstrepingsteken (`_`) is de retro-keuze.

  3. 3

    Voer de opschoner uit

    Elke naam wordt getrimd, omgezet naar ASCII, ontdaan van verboden tekens en samengevoegde witruimte. Blijft er niets over, dan wordt de naam `file`.

  4. 4

    Controleer voordat je hernoemt

    De uitvoer toont alleen de opgeschoonde namen, dus bekijk ze op botsingen (twee invoeren die dezelfde uitvoer worden) voordat je ter plekke hernoemt.

Wat is onveilig, en waarom

Verschillende bestandssystemen en tools hanteren verschillende blacklists. De veilige, platformoverstijgende doorsnede is krapper dan de meeste mensen beseffen.

Tekens en patronen die bestandsnamen onveilig maken

Onderdeel Waarom het onveilig is
\ / : * ? " < > | Verboden op Windows (NTFS, FAT).
ASCII-stuurtekens 0x00-0x1F Ongeldig op de meeste bestandssystemen; laten shellscripts crashen.
Spaties aan begin/eind Stilzwijgend verwijderd door Windows; onzichtbare bugs.
Punten aan het eind Stilzwijgend verwijderd door Windows.
Gereserveerde namen CON, PRN, AUX, NUL, COM1..9, LPT1..9, allemaal geblokkeerd op Windows.
Unicode-combinatietekens Laten café er hetzelfde uitzien als café, maar het is op sommige systemen een andere bestandsnaam.
Emoji- en pictogramtekens Overleven moderne systemen, maar breken oudere CI-pipelines en CDN-paden.

Toegepaste normalisatiestappen

  1. Omzetting naar ASCII. Letters met accenten worden hun eenvoudige basisletter: café wordt cafe, naïve wordt naive. Schriftsoorten zonder ASCII-equivalent (CJK, emoji) worden verwijderd.
  2. Vervanging van verboden tekens. \ / : * ? " < > | en stuurtekens worden het teken van jouw keuze (standaard: koppelteken).
  3. Witruimte samenvoegen. Reeksen spaties en tabs worden één vervangteken.
  4. Randen bijknippen. Punten en vervangtekens aan het begin en einde worden verwijderd; een leeg resultaat wordt file.
  5. Extensies blijven behouden. Punten binnen de naam worden niet vervangen, dus .pdf, .jpg, .tar.gz overleven; alleen punten aan het einde worden verwijderd.

Tips

  • Behoud de extensie. Punten binnen een naam blijven behouden, dus .pdf, .jpg en .tar.gz blijven ongewijzigd.
  • Controleer op botsingen. Résumé.pdf en Resume.pdf worden allebei resume.pdf, omdat accenten altijd worden omgezet. Bekijk de uitvoer voordat je ter plekke hernoemt.
  • Webpaden. Codeer voor URL’s na het opschonen ook met procent-codering, of beter nog, houd de URL-slug een deelverzameling van [a-z0-9-], zodat codering nooit nodig is.

Veelgestelde vragen

Voor webassets en platformoverstijgende ZIP-bestanden wel, het voorkomt subtiele bugs wanneer een bestand wordt geüpload naar een hoofdletterongevoelige Windows-server en gelinkt vanaf een hoofdlettergevoelige Linux-CDN. De opschoner verandert nooit hoofdletters in kleine letters, dus doe dat zelf als je het nodig hebt. Voor lokaal werk is het een kwestie van smaak.

Spaties zijn toegestaan op elk modern besturingssysteem, maar ze forceren URL-codering (%20), breken veel shell-pipelines en verwarren oudere tools. Ze vervangen door een koppelteken elimineert een hele categorie bugs.

De opschoner levert altijd zuivere ASCII op. Letters met accenten worden omgezet (café wordt cafe), Cyrillisch wordt omgezet naar een Latijnse benadering en tekens zonder ASCII-equivalent (CJK, Thai, emoji) worden verwijderd. Heeft een doelsysteem de oorspronkelijke niet-Latijnse namen nodig, bewaar ze dan in een apart bestand.

Nee, de lijst wordt tijdens het verzoek in het geheugen opgeschoond en wordt daarna niet opgeslagen of naar enig logbestand weggeschreven.

Gerelateerde tools

Tool beschikbaar in andere talen