Startpagina » hoe » Waarom hebben sommige Windows-bestands- en mapnamen een punt ervoor?

    Waarom hebben sommige Windows-bestands- en mapnamen een punt ervoor?

    Terwijl de meesten van ons alleen normale bestands- en mapnamen op onze Windows-systemen zien, zijn andere mensen misschien iets onverwachts tegengekomen - bestands- en mapnamen met een punt ervoor. Waarom gebeurt dit? De SuperUser Q & A-post van vandaag heeft het antwoord op een zeer nieuwsgierige lezer.

    De Question & Answer-sessie van vandaag komt tot ons dankzij SuperUser - een onderdeel van Stack Exchange, een gemeenschapsgedreven groep van Q & A-websites.

    Foto met dank aan Domiriel (Flickr).

    De vraag

    SuperUser-lezer Niko Bellic wil weten waarom sommige Windows-bestands- en mapnamen een punt ervoor hebben:

    Bijvoorbeeld in de Mijn Documenten map op mijn Windows-systeem Ik heb de volgende mappen gevonden:

    • .ssh
    • .omverwerping

    Is dit een soort naamgevingsconventie waarvan ik me niet bewust ben?

    Waarom hebben sommige Windows-bestands- en mapnamen een punt ervoor??

    Het antwoord

    SuperUser contributor grawity heeft het antwoord voor ons:

    Deze naamgevingsconventie is afkomstig van Unix-achtige besturingssystemen (zoals Linux of OSX), waarbij het betekent: verborgen bestand of directory. Het werkt overal, maar het primaire gebruik ervan is om configuratiebestanden te verbergen in je thuismap (d.w.z.. ~ / .cache / of ~ / .plan) Ze worden vaak gebeld puntbestanden.

    Dot-bestanden zou in zekere zin het traditionele Unix-equivalent kunnen worden genoemd App data map op Windows. Ondertussen worden veel Linux-programma's gewijzigd om de XDG-basismapspecificatie te volgen en hun configuratie naar te verplaatsen ~ / .Config / en andere gegevens naar ~ / .Cache / en ~ / .Local / share /. Dit maakt het meer vergelijkbaar met AppData \ Roaming en AppData \ Local.

    Jij hebt deze .ssh en .omverwerping mappen op Windows omdat u enkele programma's (met name OpenSSH en Subversion) hebt gebruikt die geporteerd zijn om Windows-systeem-API's te gebruiken in plaats van POSIX-versies, maar die niet zijn aangepast voor sommige andere Windows-conventies.

    Soms wordt deze aanpassing opzettelijk overgeslagen om het leven gemakkelijker te maken voor mensen die Unix-achtige omgevingen zoals Cygwin gebruiken op hun Windows-systemen. Cygwin installeert bijvoorbeeld de standaardset van Unix-achtige tools zoals ls, die de Windows negeert verborgen vlag en eert alleen de puntbestand namen. Het is ook eenvoudiger om configuraties te synchroniseren tussen de Windows- en Linux / BSD / OSX-computers van een persoon als deze op dezelfde locatie wordt gedeeld.

    Deze bestanden zijn meestal te vinden in de basismap van de gebruiker (d.w.z.. /home/name/.ssh op Linux of C: \ Users \ naam \ .ssh op Windows 7 en hoger). Het komt vrij zelden voor dat ze in de documenten of Mijn Documenten submappen (ze bevatten immers geen documenten).

    Zoals Rob Pike op Google+ schrijft, was dit een toevallige functie:

    Lang geleden, toen het ontwerp van het Unix-bestandssysteem werd uitgewerkt, waren de inzendingen . en ... verscheen om de navigatie te vergemakkelijken. Ik weet het niet zeker, maar ik geloof ... ging naar binnen tijdens het herschrijven van versie 2 toen het bestandssysteem hiërarchisch werd (het had al vroeg een heel andere structuur). Toen iemand typte ls, deze bestanden zijn echter verschenen, dus ofwel Ken of Dennis hebben een eenvoudige test aan het programma toegevoegd. Het was toen in assembler, maar de code in kwestie was equivalent met zoiets als dit:

    • if (naam [0] == '.') ga verder;

    Deze verklaring was iets korter dan wat het had moeten zijn, wat is:

    • if (strcmp (name, ".") == 0 || strcmp (name, "...") == 0) ga verder;

    Maar goed, het was gemakkelijk en er zijn twee dingen uit voortgekomen.

    Ten eerste was er een slecht precedent. Veel andere luie programmeurs hebben bugs geïntroduceerd door dezelfde vereenvoudiging aan te brengen. Werkelijke bestanden die beginnen met punten worden vaak overgeslagen als ze zouden moeten worden geteld.

    Ten tweede, en veel erger, het idee van een verborgen of puntbestand werd opgericht. Als gevolg hiervan begonnen meer luie programmeurs bestanden in ieders homedirectory te plaatsen. Ik heb niet veel software geïnstalleerd op de computer die ik gebruik om dit te typen, maar mijn thuismap heeft er ongeveer honderd puntbestanden en ik weet niet eens wat de meesten van hen zijn of dat ze nog steeds nodig zijn. Elke bestandsnaamevaluatie die door mijn thuismap gaat, wordt afgeremd door dit opgehoopte slib.


    Heb je iets toe te voegen aan de uitleg? Geluid uit in de reacties. Wilt u meer antwoorden van andere technisch onderlegde Stack Exchange-gebruikers lezen? Bekijk hier de volledige discussiethread.