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

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

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

Während die meisten von uns nur normale Dateien und Ordner sehenNamen auf unseren Windows-Systemen, andere Personen sind möglicherweise auf etwas Unerwartetes gestoßen - Datei- und Ordnernamen mit einem Punkt vor ihnen. Warum passiert das? Der heutige SuperUser-Frage- und Antwortbeitrag enthält die Antwort auf die Frage eines sehr neugierigen Lesers.

Die heutige Frage & Antwort-Sitzung wird von SuperUser bereitgestellt - einer Unterteilung von Stack Exchange, einer von der Community gesteuerten Gruppierung von Q & A-Websites.

Foto mit freundlicher Genehmigung von Domiriel (Flickr).

Die Frage

SuperUser-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 sich?

Die Antwort

SuperUser Contributor Grawity hat die Antwort für uns:

Diese Namenskonvention stammt von Unix-ähnlichen Betriebssystemen (z. B. Linux oder OSX) und bedeutet a versteckte Datei oder Verzeichnis. Es funktioniert überall, wird jedoch hauptsächlich zum Ausblenden von Konfigurationsdateien in Ihrem Home-Verzeichnis verwendet (d. H. ~ / .cache / oder ~ / .plan) Sie werden häufig genannt Dot-Dateien.

Dot-Dateien könnte in gewisser Weise als das traditionelle Unix-Äquivalent zu dem bezeichnet werden Anwendungsdaten Verzeichnis unter Windows. In der Zwischenzeit 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 ähnlicher App-Daten-Roaming und AppDataLocal.

Du hast diese .ssh und .Subversion Verzeichnisse unter Windows, weil Sie einige verwendet habenProgramme (insbesondere OpenSSH und Subversion), die für die Verwendung von Windows-System-APIs anstelle von POSIX-APIs portiert wurden, jedoch nicht für andere Windows-Konventionen angepasst wurden.

Manchmal wird diese Anpassung übersprungenabsichtlich, um Menschen das Leben zu erleichtern, die Unix-ähnliche Umgebungen wie Cygwin auf ihren Windows-Systemen verwenden. Zum Beispiel installiert Cygwin den Standardsatz von Unix-ähnlichen Werkzeugen wie ls, der das Windows ignoriert versteckte Flagge und ehrt nur die Punktedatei Namen. Es ist auch einfacher, Konfigurationen zwischen den Windows- und Linux- / BSD- / OSX-Computern einer Person zu synchronisieren, wenn diese am selben Speicherort freigegeben sind.

Diese Dateien befinden sich normalerweise im Home-Verzeichnis des Benutzers (d. H. /home/name/.ssh unter Linux oder C: Benutzername.ssh unter Windows 7 und höher). Es ist ziemlich selten, dass sie in den Park gestellt werden Unterlagen oder Meine Dokumente Unterverzeichnisse (sie enthalten schließlich 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, waren die Einträge . und .. erschienen, um die Navigation zu erleichtern. Ich bin nicht sicher, aber ich glaube .. wurde beim Neuschreiben von Version 2 berücksichtigt, als das Dateisystem hierarchisch wurde (es hatte von Anfang an eine ganz andere Struktur). Wenn man tippte lsDa diese Dateien jedoch angezeigt wurden, fügten Ken oder Dennis dem Programm einen einfachen Test hinzu. Es war damals in Assembler, aber der fragliche Code war ungefähr so:

  • if (name [0] == ‘.’) continue;

Diese Aussage war etwas kürzer als es hätte sein sollen, nämlich:

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

Aber hey, es war einfach und zwei Dinge ergaben sich.

Zunächst wurde ein schlechter Präzedenzfall geschaffen. Viele andere faule Programmierer haben Fehler eingeführt, indem sie die gleiche Vereinfachung vorgenommen haben. Tatsächliche Dateien, die mit Punkten beginnen, werden häufig übersprungen, wenn sie gezählt werden sollen.

Zweitens, und noch viel schlimmer, die Idee eines versteckt oder Punktedatei wurde erstellt. In der Folge begannen faulere Programmierer, Dateien in das Home-Verzeichnis aller zu kopieren. Auf dem Computer, mit dem ich das eingebe, ist nicht viel Software installiert, aber in meinem Home-Verzeichnis befinden sich ungefähr einhundert Dot-Dateien und ich weiß nicht einmal, was die meisten von ihnen sind oder ob sie noch gebraucht werden. Jede Dateinamenauswertung, die mein Homeverzeichnis durchläuft, wird durch diesen angesammelten Schlamm verlangsamt.


Möchten Sie der Erklärung etwas hinzufügen? Ton aus in den Kommentaren. Möchten Sie weitere Antworten von technisch versierten Stack Exchange-Benutzern lesen? Den vollständigen Diskussionsthread finden Sie hier.