In befinden sich beispielsweise My Documents
die folgenden Ordner:
.ssh
.subversion
Ist das eine Art Namenskonvention, die ich nicht kenne?
Diese Namenskonvention stammt von Unix-ähnlichen Betriebssystemen (wie Linux oder OS X), wobei es sich um eine "versteckte" Datei oder ein "verstecktes" Verzeichnis handelt. Es funktioniert überall, wird jedoch hauptsächlich zum Verstecken von Konfigurationsdateien in Ihrem Home-Verzeichnis verwendet (z. B. ~/.cache/
oder ~/.plan
- sie werden häufig als "Punktdateien" bezeichnet).
Dotfiles könnten in gewisser Weise als das traditionelle Unix-Äquivalent zum "AppData" -Verzeichnis unter Windows bezeichnet werden. (Viele Linux-Programme werden so geändert, dass sie der XDG-Basisverzeichnisspezifikation folgen ~/.config/
und ihre Konfiguration und andere Daten nach ~/.cache/
& verschieben. ~/.local/share/
Dadurch ähnelt sie AppData\Roaming
und AppData\Local
.)
Sie haben diese .ssh
und .subversion
Verzeichnisse unter Windows, weil Sie einige Programme - insbesondere OpenSSH und Subversion - verwendet haben, die für die Verwendung von Windows-System-APIs anstelle von POSIX-APIs portiert wurden, aber nicht für andere Windows-Konventionen angepasst wurden.
Manchmal wird diese Anpassung absichtlich übersprungen, um Menschen, 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
, die das "versteckte" Windows-Flag ignorieren und nur die .dotfile
Namen berücksichtigen. Die Verwendung desselben Speicherorts (z. B. <home>/.ssh
) erleichtert die Synchronisierung der Konfiguration zwischen Windows- und Linux- / BSD- / OSX-Computern.
Auch: In der Regel sind diese Dateien im Benutzer Home - Verzeichnis , zB unter Linux oder auf Windows 7+. Es kommt sehr selten vor, dass sie in die Unterverzeichnisse "Dokumente" oder "Eigene Dateien" gestellt werden./home/name/.ssh
C:\Users\name\.ssh
Wie Rob Pike auf Google+ schreibt , war dies ein zufälliges Feature:
Vor langer Zeit, als das Design des Unix-Dateisystems ausgearbeitet wurde, erschienen die Einträge
.
und..
, um die Navigation zu vereinfachen. Ich bin nicht sicher, aber ich glaube, dass es..
während des Umschreibens von Version 2 dazu kam, als das Dateisystem hierarchisch wurde (es hatte von Anfang an eine ganz andere Struktur). Bei der Eingabe von ls wurden diese Dateien jedoch angezeigt, sodass Ken oder Dennis dem Programm einen einfachen Test hinzufügten. Es war damals in Assembler, aber der fragliche Code war ungefähr so:
if (name[0] == '.') continue;
Diese Aussage war etwas kürzer als das, was sie hätte sein sollen
if (strcmp(name, ".") == 0 || strcmp(name, "..") == 0) continue;
aber hey, es war einfach.
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, wurde die Idee einer "versteckten" oder "Punkt" -Datei geschaffen. In der Folge begannen faulere Programmierer, Dateien in das Home-Verzeichnis aller zu kopieren. Ich habe nicht so viel Zeug auf dem Computer installiert, mit dem ich das schreibe, aber mein Homeverzeichnis hat ungefähr hundert Punktedateien 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.
ls
hat die-a
Möglichkeit , alle Dateien aufzulisten.LOGIN.COM
oderDECW$MAIL.DAT
in Ihrem Home-Verzeichnis landen . (Ich bin mir nicht sicher, welche anderen Systeme zu dieser Zeit populär waren.) Unix wurde erst kürzlich erstellt. Es gab überhaupt keine Konventionen...
für "up dir"; Microsoft hat tatsächlich für diese "erweiterten Unix-Funktionen" geworben.