/ / Proč mají některá jména souborů a složek Windows před nimi tečku?

Proč mají některá jména souborů a složek Windows před nimi tečku?

why-do-some-windows-file-and-folder-names-have-a-dot-in-front-of-them-00

Zatímco většina z nás prostě vidí normální soubor a složkujména v našich systémech Windows, ostatní lidé se mohli setkat s něčím trochu neočekávanějším - názvy souborů a složek s tečkou před nimi. Proč se to stalo? Dnešní příspěvek SuperUser Q&A má odpověď na velmi zvědavou otázku čtenáře.

Dnešní relace otázek a odpovědí k nám přichází s laskavým svolením SuperUser - členění Stack Exchange, komunitního seskupování Q&A webových stránek.

Foto s laskavým svolením Domiriel (Flickr).

Otázka

Čtečka SuperUser Niko Bellic chce vědět, proč mají některé názvy souborů Windows a složek před nimi tečku:

Například v Moje dokumenty adresář v mém systému Windows jsem našel následující složky:

  • .ssh
  • .podvracení

Je to nějaká pojmenovací konvence, o které nevím?

Proč mají některé názvy souborů a složek Windows před nimi tečku?

Odpověď

Grupita přispěvatele SuperUser má pro nás odpověď:

Tato konvence pojmenování pochází z unixových operačních systémů (jako je Linux nebo OSX), kde to znamená skrytý soubor nebo adresář. Funguje to kdekoli, ale primárně se používá ke skrytí konfiguračních souborů ve vašem domovském adresáři (tj. ~ / .cache / nebo ~ / .plan) Často se jim říká dot soubory.

Dot soubory mohlo by se určitým způsobem nazvat tradiční unix ekvivalentní Data aplikací adresář na Windows. Mezitím se mnoho Linuxových programů mění tak, aby odpovídaly specifikaci základního adresáře XDG a přesunuly jejich konfiguraci do ~ / .config / a další údaje ~ / .cache / a ~ / .local / share /. Díky tomu je více podobná AppDataRoaming a AppDataLocal.

Ty máš .ssh a .podvracení adresáře v systému Windows, protože jste některé užiliprogramy (konkrétně OpenSSH a Subversion), které byly portovány tak, aby používaly systémová API systému Windows spíše než programy POSIX, ale nebyly upraveny pro některé jiné konvence Windows.

Někdy je tato adaptace vynechánaúmyslně usnadnit život lidem, kteří ve svých systémech Windows používají prostředí podobná Unixu, jako je Cygwin. Cygwin například nainstaluje standardní sadu nástrojů podobných Unixu ls, což ignoruje Windows skrytá vlajka a jen vyznamenání tečka soubor jména. Je také snazší synchronizovat konfigurace mezi počítači Windows s operačním systémem Windows a Linux / BSD / OSX, pokud je sdílena na stejném místě.

Tyto soubory se obvykle nacházejí v domovském adresáři uživatele (tj. /home/name/.ssh v systému Linux nebo C: Usersname.ssh ve Windows 7 a novějších). Je docela vzácné, že se do něj vloží Dokumenty nebo Moje dokumenty podadresáře (neobsahují všechny dokumenty).

Jak píše Rob Pike na Google+, byla to náhodná funkce:

Už dávno, když byl vypracován návrh systému souborů Unix, byly záznamy . a .. se objevila, aby se usnadnila navigace. Nejsem si jistý, ale věřím .. nastal během přepisování verze 2, když se systém souborů stal hierarchickým (na počátku měl velmi odlišnou strukturu). Když někdo psal ls, tyto soubory se však objevily, takže buď Ken, nebo Dennis přidali do programu jednoduchý test. Tehdy to bylo v assembleru, ale dotyčný kód byl ekvivalentem něčeho podobného:

  • pokud (jméno [0] == ‘.’) pokračovat;

Toto tvrzení bylo o něco kratší než to, co mělo být, což je:

  • pokud (strcmp (jméno, “.”) == 0 || strcmp (jméno, “..”) == 0) pokračovat;

Ale hej, bylo to snadné a vznikly dvě věci.

Nejprve byl stanoven špatný precedens. Mnoho dalších líných programátorů zavedlo chyby provedením stejného zjednodušení. Skutečné soubory začínající tečkami jsou často přeskočeny, když se mají počítat.

Za druhé a mnohem horší je myšlenka skrytý nebo tečka soubor byl vytvořen. V důsledku toho začali více líní programátoři ukládat soubory do domovského adresáře každého. Na počítači, který používám k zadání tohoto typu, není nainstalováno tolik softwaru, ale můj domovský adresář má asi sto dot soubory a ani nevím, co je většina z nich nebo zda jsou stále potřeba. Každé vyhodnocení názvu souboru, které prochází mým domovským adresářem, je tímto akumulovaným kalem zpomaleno.


Máte něco k vysvětlení? V komentářích zní zvuk. Chcete si přečíst více odpovědí od ostatních technicky zdatných uživatelů zásobníku Exchange? Podívejte se na celou diskusní vlákno zde.