Miért van néhány Windows fájl- és mappanév egy pontja előttük?
Míg a legtöbbünk csak normál fájl- és mappaneveket lát a Windows rendszerünkben, más emberek talán valamivel több váratlan - fájl- és mappanevekkel találkoztak - egy ponttal előttük. Miért történik ez? A mai SuperUser Q & A-posta egy nagyon kíváncsi olvasó kérdésére válaszol.
A mai Kérdések és válaszok munkamenet a Jóvagyon - a Stack Exchange alosztályának, a közösség által vezérelt Q&A webhelyek csoportjának köszönhetően..
Fénykép jóvoltából Domiriel (Flickr).
A kérdés
A SuperUser olvasó Niko Bellic szeretné tudni, hogy miért van néhány Windows fájl- és mappanév egy pont előttük:
Például a Saját dokumentumok a Windows rendszeremben található könyvtárban találtam az alábbi mappákat:
- .ssh
- .felforgatás
Ez valamiféle elnevezési egyezmény, amit nem tudok?
Miért van néhány Windows fájl- és mappanév egy pontja előttük?
A válasz
A SuperUser hozzájárulójainak nyereségessége a következő:
Ez az elnevezési egyezmény a Unix-szerű operációs rendszerekből (például Linuxból vagy OSX-ből) származik, ahol az a rejtett fájl vagy Könyvtár. Bárhol működik, de elsődleges célja, hogy elrejtse az otthoni könyvtár konfigurációs fájljait (azaz. ~ / .cache / vagy ~ / .plan) Gyakran hívják őket dot fájlok.
Dot fájlok bizonyos értelemben a hagyományos Unixnak lehetne nevezni App adatok könyvtárban. Eközben számos Linux-programot módosítanak az XDG alapkönyvtár specifikációjának követéséhez, és a konfigurációjukat áthelyezik ~ / .Config / és egyéb adatok ~ / .Cache / és ~ / .Local / share /. Ez jobban hasonlít AppData \ Roaming és AppData \ Local.
Ezek vannak .ssh és .felforgatás Windows-könyvtárak, mert néhány programot (különösen az OpenSSH-t és a Subversion-et) használtak, amelyeket a Windows rendszer API-k használatára a POSIX-ok helyett hordoztak, de más Windows-egyezményekhez nem igazították.
Néha ezt az adaptációt szándékosan kihagyják, hogy megkönnyítsék az életet azok számára, akik olyan Unix-szerű környezetet használnak, mint a Cygwin a Windows rendszerükön. Például a Cygwin telepíti a szokásos Unix-szerű eszközöket ls, amely figyelmen kívül hagyja a Windows rendszert rejtett zászló és csak kitünteti a dot fájl nevek. Az egyéni Windows és Linux / BSD / OSX számítógépek közötti konfigurációkat is könnyebb szinkronizálni, ha ugyanazon a helyen oszlik meg.
Ezeket a fájlokat általában a felhasználó saját könyvtárában találja (azaz a. /home/name/.ssh Linuxon vagy C: \ Users \ név \ .ssh Windows 7 és újabb verzióiban). Elég ritka számukra, hogy beiktassák őket Dokumentumok vagy Saját dokumentumok alkönyvtárak (végül nem tartalmaznak dokumentumokat).
Ahogy Rob Pike a Google+ -on ír, ez egy véletlenszerű funkció:
Régen, a Unix fájlrendszerének kialakításakor, a bejegyzések elkészültek . és ... a navigáció megkönnyítése érdekében. Nem vagyok biztos benne, de azt hiszem ... a 2. verzió átírása során, amikor a fájlrendszer hierarchikus lett (korai struktúrája nagyon eltérő volt). Amikor az egyik gépelésre került ls, azonban ezek a fájlok megjelentek, így Ken vagy Dennis egy egyszerű tesztet adott hozzá a programhoz. Ez volt az összeszerelőben, de a szóban forgó kód hasonló volt ehhez:
- ha (név [0] == '.') folytatódik;
Ez az állítás egy kicsit rövidebb volt, mint amilyennek kellett volna lennie, ami:
- ha (strcmp (név, „.”) == 0 || strcmp (név, „…”) == 0) folytatódik;
De hé, könnyű volt, és két dolog következett.
Először egy rossz precedenst állítottak be. Sok más lusta programozó hibákat vezett be ugyanazzal az egyszerűsítéssel. Az időszakokkal kezdődő tényleges fájlokat gyakran kihagyják, amikor meg kell számolni.
Másodszor, és sokkal rosszabb, az a rejtett vagy dot fájl elkészült. Ennek következtében több lusta programozó elkezdett fájlokat dobni mindenki otthoni könyvtárába. Nincs sok szoftverem telepítve a számítógépre, amit használok, hogy ezt írjam, de az otthoni könyvtáramnak körülbelül száza van dot fájlok és nem is tudom, mi a legtöbbjük, vagy még mindig szükség van rá. Ez az összegyűlt iszap minden otthoni könyvtáramban lévő fájlnév-értékelést lelassít.
Van valami, amit hozzá kell adni a magyarázathoz? Kikapcsolja a megjegyzéseket. Szeretne további válaszokat olvasni más tech-savvy Stack Exchange felhasználóktól? Nézze meg a teljes beszélgetés szálát itt.