Wiele powodów jest historycznych. To nie znaczy, że nie mają dziś sensu.
Problemy z przenośnością
Podczas nazywania pliku konieczne może być również rozważenie, w jaki sposób inne systemy (plikowe) będą traktować tę nazwę pliku. Znak w nazwie pliku może być odpowiedni dla twojego systemu, ale może być problemem dla innego systemu.
Tak długo, jak istnieje najmniejsza możliwość, że możesz chcieć mieć łatwy dostęp do pliku ze starszego systemu, wybierasz tylko bezpieczny znak. Może to obejmować rozruch ze starego systemu przywracania systemu lub obawy, że najnowsze wersje systemu Windows nadal są w jakiś sposób oparte na systemie MS-DOS.
Długość
System plików może ograniczać długość pliku. Było to jeszcze poważniejsze w czasach, gdy MS-DOS był ograniczony do 8,3 nazw plików . Pominięcie spacji pozwoliło więc na umieszczenie w nazwie bardziej znaczących znaków.
Kilka innych systemów plików również zdefiniowało ścisłe ograniczenia długości ich nazw. Wikipedia zawiera tabelę w artykule na temat porównania systemów plików dla tych, którzy chcą szczegółów.
Zarezerwowane postacie
MS-DOS zdefiniował również znak spacji jako znak zastrzeżony. Wynika to z faktu, że znak spacji został użyty do wypełnienia w FAT . Ponadto MS-DOS nie zapewniał ucieczki systemu w powłoce.
Interpretacja wiersza poleceń
W większości wierszy poleceń zdaję sobie sprawę ze stosowania znaku spacji jako ogranicznika parametru . Zaniedbanie prawidłowego zmiany nazwy pliku może mieć poważne konsekwencje, ponieważ części nazwy pliku można interpretować jako parametry aplikacji, do której chcesz zadzwonić.
Rozważ różnicę między
rm foo bar
i
rm "foo bar"
Artykuł WikiPedia, do którego prowadzi link powyżej, wskazuje nawet na dwuznaczność wprowadzoną przez brak, aby poprawnie uciec od polecenia:
Dwuznaczności można zapobiec, zakazując przede wszystkim osadzania spacji w nazwach plików i katalogów (na przykład, zastępując je znakami podkreślenia „_”) lub, jeśli jest to obsługiwane przez interpreter wiersza poleceń i programy przyjmujące te parametry jako argumenty, umieszczając nazwę z osadzonymi spacjami między znakami cudzysłowu lub używając znaku zmiany znaczenia przed spacją, zwykle odwrotnym ukośnikiem („\”). Na przykład
Long path/Long program name Parameter one Parameter two ...
jest niejednoznaczny (czy „nazwa programu” jest częścią nazwy programu, czy dwa parametry?); jednak
Long_path/Long_program_name Parameter_one Parameter_two ...,
LongPath/LongProgramName ParameterOne ParameterTwo ...,
"Long path/Long program name" "Parameter one" "Parameter two" ...
i Long \ ścieżka / Long \ program \ name Parametr \ jeden Parametr \ dwa ...
nie są dwuznaczne.
Jednolite lokalizatory zasobów (URL)
Przy próbie opisania położenia pliku za pomocą adresu URL należy wstawić spacje.
Znaki mogą być niebezpieczne z wielu powodów. Znak spacji jest niebezpieczny, ponieważ znaczące spacje mogą zniknąć, a nieznaczne spacje mogą zostać wprowadzone, gdy adresy URL są transkrybowane, składane lub poddawane obróbce programów do edycji tekstu.
Źródło: RFC1738
Dlatego %20
zamiast tego należy zastąpić spację . To sprawia, że nazwa pliku jest częścią adresu URL mniej czytelna, a tym samym ludzie przede wszystkim go unikają.