Startseite » wie man » Warum haben einige Windows-Datei- und Ordnernamen einen Punkt vor ihnen?

    Warum haben einige Windows-Datei- und Ordnernamen einen Punkt vor ihnen?

    Während die meisten von uns nur normale Datei- und Ordnernamen auf unseren Windows-Systemen sehen, sind andere Personen möglicherweise auf etwas unerwarteter gestoßen - Datei- und Ordnernamen mit einem Punkt vor ihnen. Warum passiert das? Der heutige SuperUser-Q & A-Beitrag hat die Antwort auf eine sehr neugierige Leserfrage.

    Die heutige Question & Answer-Sitzung wird dank SuperUser zur Verfügung gestellt - einer Unterteilung von Stack Exchange, einer Community-basierten Gruppierung von Q & A-Websites.

    Foto mit freundlicher Genehmigung von Domiriel (Flickr).

    Die Frage

    Super User-Leser Niko Bellic möchte wissen, warum einige Windows-Datei- und Ordnernamen einen Punkt vor sich haben:

    Zum Beispiel in der Meine Dokumente Verzeichnis auf meinem Windows-System Ich habe die folgenden Ordner gefunden:

    • .ssh
    • .Subversion

    Ist das eine Art Namenskonvention, die ich nicht kenne??

    Warum haben einige Windows-Datei- und Ordnernamen einen Punkt vor ihnen?

    Die Antwort

    Superuser-Mitwirkende grawity hat die Antwort für uns:

    Diese Namenskonvention stammt von Unix-ähnlichen Betriebssystemen (wie Linux oder OSX), wobei dies a bedeutet versteckte Datei oder Verzeichnis. Es funktioniert überall, aber in erster Linie werden Konfigurationsdateien in Ihrem Home-Verzeichnis (d. H. ~ / .cache / oder ~ / .plan) Sie werden häufig gerufen Punktdateien.

    Punktdateien Man könnte in gewisser Weise das traditionelle Unix-Äquivalent des Anwendungsdaten Verzeichnis unter Windows. Inzwischen werden viele Linux-Programme so geändert, dass sie der XDG-Basisverzeichnisspezifikation folgen und ihre Konfiguration nach verschieben ~ / .config / und andere Daten an ~ / .cache / und ~ / .local / share /. Dies macht es mehr ähnlich App-Daten-Roaming und AppData \ Local.

    Sie haben diese .ssh und .Subversion Verzeichnisse unter Windows, da Sie einige Programme (insbesondere OpenSSH und Subversion) verwendet haben, die zur Verwendung von Windows-System-APIs anstelle von POSIX-Portierungen portiert wurden, jedoch nicht für andere Windows-Konventionen angepasst wurden.

    Manchmal wird diese Anpassung absichtlich übersprungen, um Benutzern, die Unix-ähnliche Umgebungen wie Cygwin auf ihren Windows-Systemen verwenden, das Leben zu erleichtern. Zum Beispiel installiert Cygwin den Standardsatz von Unix-ähnlichen Werkzeugen wie ls, das ignoriert das Windows versteckte Flagge und ehrt nur die Punktdatei Namen. Es ist auch einfacher, Konfigurationen zwischen Windows- und Linux / BSD / OSX-Computern einer Einzelperson zu synchronisieren, wenn sie am selben Ort gemeinsam genutzt werden.

    Diese Dateien befinden sich normalerweise im Home-Verzeichnis des Benutzers (d. H. /home/name/.ssh unter Linux oder C: \ Benutzer \ Name \ .ssh unter Windows 7 und höher). Es ist ziemlich selten, dass sie in die Unterlagen oder Meine Dokumente Unterverzeichnisse (sie enthalten doch keine Dokumente).

    Wie Rob Pike auf Google+ schreibt, war dies ein zufälliges Feature:

    Vor langer Zeit, als das Design des Unix-Dateisystems ausgearbeitet wurde, wurden die Einträge erstellt . und erschienen, um die Navigation zu erleichtern. Ich bin mir nicht sicher, aber ich glaube daran ging während des Umschreibens von Version 2 ein, als das Dateisystem hierarchisch wurde (es hatte schon früh eine andere Struktur). Wenn einer tippte ls, Da diese Dateien jedoch erschienen, fügten entweder Ken oder Dennis dem Programm einen einfachen Test hinzu. Es war damals im Assembler, aber der fragliche Code entsprach ungefähr dem folgenden:

    • if (name [0] == '.') fortsetzen;

    Diese Aussage war etwas kürzer als das, was sie hätte sein sollen.

    • if (strcmp (name, “.”) == 0 || strcmp (name, “…”) == 0) weiter;

    Aber hey, es war einfach und es gab zwei Dinge.

    Zunächst wurde ein schlechter Präzedenzfall geschaffen. Viele andere faule Programmierer führten Bugs durch die gleiche Vereinfachung ein. Tatsächliche Dateien, die mit Punkten beginnen, werden oft übersprungen, wenn sie gezählt werden sollen.

    Zweitens, und noch viel schlimmer, die Idee von a versteckt oder Punktdatei wurde erstellt. Infolgedessen fingen mehr faule Programmierer an, Dateien in das Heimatverzeichnis aller zu legen. Ich habe nicht viel Software auf dem Computer installiert, auf dem ich dies tippe, aber mein Heimatverzeichnis hat ungefähr einhundert Punktdateien und ich weiß gar nicht, was die meisten sind oder ob sie noch gebraucht werden. Jede Dateinamenauswertung, die mein Heimatverzeichnis durchläuft, wird durch diesen angesammelten Schlamm verlangsamt.


    Haben Sie der Erklärung etwas hinzuzufügen? Sound off in den Kommentaren. Möchten Sie mehr Antworten von anderen technisch versierten Stack Exchange-Benutzern lesen? Hier geht es zum vollständigen Diskussionsthread.