Windows | Operační systémy

Zakázané názvy. Tyhle složky ve Windows nevytvoříte a můžou za to 70. léta

  • Složky ve Windows si nepojmenujete libovolně.
  • Seznam rezervovaných názvů existuje kvůli kompatibilitě.
  • Kořeny této záležitosti sahají až do 70. let.

Pravidelně narážíme na to, že i dnešní Windows jsou produktem, jehož základy byly položeny před několika desítkami let. To má výhody i nevýhody. Znakem rodiny je dlouhodobá kompatibilita. Roky vývoje Windows pochopitelně nezapřou. Narazíte v nich na prastaré dialogy a jiné části dávno nepoužívaného designu.

Dědictví poznáte občas také v chování Windows. Dokonce i Jedenáctky vás stále omezují v tom, jak můžete pojmenovávat složky nebo jiné soubory – složka je z pohledu systému jen zvláštní typ souboru.

Microsoft poskytuje seznam zakázaných názvů složek: CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8 a LPT9.

Sami si můžete snadno ověřit, že vás Windows nenechají vytvořit si složku pojmenovanou např. CON. Nebo con, na velikosti písmen nezáleží.

windows zakazane nazvy slozek (6).png

Neprojde vám ani složka s názvem PRN. A tak dále.

windows zakazane nazvy slozek (5).png

Vyjmenované názvy jsou systémem rezervované. Dřívější verze Windows některé názvy používaly pro určitá zařízení, vlastně to tak dělal už DOS. Sériové porty třeba označoval jako COM1, COM2, COM3 atd.

Ty už sice na počítačích dlouho nenajdete, ale jde právě o zpětnou kompatibilitu, které se Windows vzdávají jen neochotně. Podobně je to s paralelními porty. V počítačích už tyhle porty nahradilo USB, ale Windows je pojmenovával jako LPT1, LPT2 atd. K portům LPT se typicky připojovaly tiskárny.

windows zakazane nazvy slozek (4).png

Názvy zařízení dnešní uživatele a uživatelky už typicky nezajímají, ale v hluboké minulosti se např. tisklo textovým příkazem: print C:\autoexec.bat > LPT1. Tenhle příkaz by poslal pokyn k vytisknutí obsahu souboru autoexec.bat prostřednictvím tiskárny připojené k portu LPT1.

Aby zabránily kolizím, Windows vám dodnes neumožní, aby se takhle jmenovala vámi vytvořená složka. Všechny výše vypsané zakázané názvy pro Windows představují určité zařízení a zejména by se na něj dodnes mohl odvolat nějaký skript.

Může za to DOS

Důvody přitom vysledujeme minimálně do roku 1974. V tomto roce šel do kin druhý díl Kmotra a Gary Kildall vyvinul operační systém CP/M pro osmibitové procesory od Intelu. Od o pár let staršího Unixu si vypůjčil myšlenku, že všechno je soubor. Díky tomu jste mohli třeba vytisknout soubor jednoduchým textovým příkazem nebo zkopírovat data ze sériového portu do textového souboru.

Tento zvláštní soubor zjednodušeně řešeno reprezentuje zařízení. Na prostých osmibitech s CP/M se nepočítalo s pevnými disky, programy a soubory se ukládaly na osmipalcové diskety, tudíž Kildall nepočítal ani se strukturou složek. Aby bylo nakládání se zařízeními univerzální, zvláštní soubory byly přítomné všude. (Na každé disketě.)

windows zakazane nazvy slozek (3).png

Měly přiřazené názvy a systém při použití názvu ignoroval případnou příponu. I to bylo podřízení univerzálnímu použití. Pokud jste chtěli textový soubor přímo vytisknout, fungovalo to bez ohledu na to, že program chtěl souboru přiřadit příponu. LST znamenalo tisk, takže se v tisk proměnilo i uložení do souboru LST.TXT.

Délka názvů souborů

V éře DOSu byly názvy souborů omezeny na osm znaků plus další tři znaky pro příponu, které odděluje tečka. Dnešní Windows taková omezení nemají, stále však tento starý formát „8.3“ podporují a pro soubory s delšímy názvy vytváří aliasy, tedy krátké názvy.

Dnes je délka cesty k souboru ve Windows nastavena na 260 znaků. Název souboru se do něj musí vejít. Od Windows 10 v1607 už se z tohoto limitu můžete vyvázat. Teoretickým limitem je pak 32 767 znaků.

Pak přišel DOS, který měl nabídnout podobný uživatelský zážitek, ale na platformě x86, kde CP/M neoperoval. Převzal myšlenku zvláštních souborů se zvláštním jménem, které jednoduše řečeno reprezentují určitá zařízení. Jenže velmi rychle na scénu nastoupily pevné disky. Najednou bylo potřeba data třídit do složek a DOS se tedy musel naučit pracovat se složkami, respektive podsložkami.

Jenže lidé byli od první verze DOSu zvyklí používat zvláštní soubory pro výše popsané účely jako pro rychlý tisk obsahu souboru krátkým příkazem, který byl univerzální. Microsoft se rozhodl udržet zpětnou kompatibilitu a docílil jí tím, že byly zvláštní soubory přítomné v každé složce a s každou příponou.

windows zakazane nazvy slozek (2).png

Tohle chování přirozeně zdědily Windows, které postupně vyrostly v podhoubí DOSu. Ve snaze zachovat kompatibilitu Microsoft nepolevil ani později, takže chování zdědila také linie Windows NT, která už na DOSu nestojí. Spadají do ní také aktuální Windows 10 a 11. Z důvodu kompatibility i tyhle verze systému pořád některé názvy složek blokují.

K určitému vývoji došlo nedávno, Microsoft po letech částečně ustoupil. Zatímco ve Windows 10 soubor s jedním z vyjmenovaných názvů vytvořit nesmíte, tedy ani např. AUX.TXT, ve Windows 11 už tohle neplatí. Firma pouze nedoporučuje, abyste takto pojmenované soubory vytvářeli, nicméně pokud chcete, AUX.TXT v Jedenáctkách vytvoříte. Zákaz se teď vztahuje pouze na složky.

windows zakazane nazvy slozek (1).png

Zdroje: Ars Technica | foone🏳️‍⚧️ / Twitter | How-To Geek | The Old New Thing | Windows App Development / Microsoft Learn

Diskuze (36) Další článek: Pravidelné pití tmavého čaje může výrazně snížit riziko cukrovky. Funguje jako antidiabetický lék

Témata článku: , , , , , , , , , , , , , , , , , , , , , , ,