Oczyszczanie nazw plików

Wklej listę nazw plików, a otrzymasz oczyszczoną wersję, która przetrwa w każdym systemie operacyjnym, w każdym archiwum ZIP i na każdej ścieżce CDN. Narzędzie zamienia litery z akcentami na czysty ASCII, usuwa znaki powodujące problemy w Windows (\ / : * ? " < > |), kasuje znaki sterujące, scala spacje i zastępuje zabronione sekwencje wybranym znakiem (domyślnie: myślnik). Przydatne przed masowym wysyłaniem do S3, przy pakowaniu materiałów szkoleniowych do ZIP-a lub przy porządkowaniu importu zdjęć ze starego NAS-a.

Jak oczyścić nazwy plików

  1. 1

    Wklej nazwy plików

    Jedna w wierszu, z rozszerzeniem lub bez. Rozszerzenia są zachowywane bez zmian.

  2. 2

    Wybierz znak zastępczy

    Wybierz znak, którym zastępowane są niebezpieczne sekwencje. Myślnik (`-`) to najbezpieczniejsza opcja domyślna; podkreślenie (`_`) to wybór w stylu retro.

  3. 3

    Uruchom oczyszczanie

    Każda nazwa jest przycinana, zamieniana na ASCII, pozbawiana zabronionych znaków, a scalane są też spacje. Jeśli nic nie zostanie, nazwa staje się `file`.

  4. 4

    Sprawdź przed zmianą nazwy

    Wynik zawiera tylko oczyszczone nazwy, więc przejrzyj go pod kątem kolizji (dwa wejścia dające ten sam wynik), zanim zmienisz nazwy w miejscu.

Co jest niebezpieczne i dlaczego

Różne systemy plików i narzędzia mają różne czarne listy. Bezpieczna część wspólna dla wszystkich platform jest węższa, niż większość ludzi sądzi.

Znaki i wzorce, które czynią nazwy plików niebezpiecznymi

Element Dlaczego jest niebezpieczny
\ / : * ? " < > | Zabronione w Windows (NTFS, FAT).
Znaki sterujące ASCII 0x00-0x1F Niedozwolone w większości systemów plików; psują skrypty powłoki.
Spacje na początku/końcu Po cichu usuwane przez Windows; niewidoczne błędy.
Kropki na końcu Po cichu usuwane przez Windows.
Nazwy zastrzeżone CON, PRN, AUX, NUL, COM1..9, LPT1..9, wszystkie blokowane w Windows.
Znaki łączące Unicode Sprawiają, że café wygląda identycznie jak café, ale w niektórych systemach jest inną nazwą pliku.
Emoji i piktogramy Przetrwają w nowoczesnych systemach, ale psują starsze potoki CI i ścieżki CDN.

Stosowane kroki normalizacji

  1. Zamiana na ASCII. Litery z akcentami stają się ich prostym odpowiednikiem: café staje się cafe, a naïve staje się naive. Pisma bez odpowiednika ASCII (CJK, emoji) są usuwane.
  2. Zastępowanie zabronionych znaków. \ / : * ? " < > | i znaki sterujące stają się wybranym znakiem zastępczym (domyślnie: myślnik).
  3. Scalanie spacji. Ciągi spacji i tabulatorów zamieniają się w jeden znak zastępczy.
  4. Przycinanie krawędzi. Kropki i znaki zastępcze na początku i na końcu są usuwane; pusty wynik staje się file.
  5. Zachowanie rozszerzeń. Kropki wewnątrz nazwy nie są zastępowane, więc .pdf, .jpg, .tar.gz przetrwają; usuwane są tylko kropki na końcu.

Wskazówki

  • Zachowaj rozszerzenie. Kropki wewnątrz nazwy pozostają, więc .pdf, .jpg i .tar.gz zostają bez zmian.
  • Sprawdzaj kolizje. Résumé.pdf i Resume.pdf po zamianie akcentów oba stają się resume.pdf, bo akcenty są zawsze zamieniane. Przejrzyj wynik, zanim zmienisz nazwy w miejscu.
  • Ścieżki sieciowe. W adresach URL zastosuj po oczyszczeniu także kodowanie procentowe, albo lepiej: ogranicz slug URL do podzbioru [a-z0-9-], aby kodowanie nigdy nie było potrzebne.

Najczęściej zadawane pytania

W przypadku zasobów sieciowych i wieloplatformowych archiwów ZIP tak, pozwala to uniknąć subtelnych błędów, gdy plik trafia na nierozróżniający wielkości liter serwer Windows, a jest linkowany z rozróżniającego wielkość liter CDN-a na Linuksie. Narzędzie nigdy nie zmienia wielkości liter, więc jeśli trzeba, samodzielnie zamień nazwy na małe litery. Przy pracy lokalnej to kwestia gustu.

Spacje są dozwolone w każdym nowoczesnym systemie operacyjnym, ale wymuszają kodowanie URL (%20), psują wiele potoków powłoki i dezorientują starsze narzędzia. Zastąpienie ich myślnikiem eliminuje całą kategorię błędów.

Narzędzie zawsze zwraca czysty ASCII. Litery z akcentami są zamieniane (café staje się cafe), cyrylica jest transkrybowana na przybliżenie łacińskie, a znaki bez odpowiednika ASCII (CJK, tajski, emoji) są usuwane. Jeśli system docelowy potrzebuje oryginalnych nazw niełacińskich, zachowaj je w osobnym pliku.

Nie, lista jest oczyszczana w pamięci w trakcie żądania i nie jest później nigdzie zapisywana ani rejestrowana w żadnym logu.

Powiązane narzędzia

Narzędzie jest dostępne w innych językach