In einem Google+ Beitrag von Rob Pike wird eine Lektion mit Abkürzungen wie folgt erklärt:
Vor langer Zeit, als das Design des Unix-Dateisystems ausgearbeitet wurde, erschienen die Einträge
.
und..
erschienen, um die Navigation zu erleichtern. Ich bin mir nicht sicher, aber ich glaube, dass es..
während der Neufassung von Version 2 eingegangen ist, als das Dateisystem hierarchisch wurde (es hatte schon früh eine andere Struktur). Bei der Eingabels
dieser Dateien wurden diese Dateien jedoch angezeigt, sodass Ken oder Dennis dem Programm einen einfachen Test hinzufügten. Es war damals im Assembler, aber der fragliche Code entsprach ungefähr dem folgenden: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.
Es resultierten 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 wurde die Idee einer "versteckten" oder "Punkt" -Datei geschaffen. Infolgedessen fingen mehr faule Programmierer an, Dateien in das Heimatverzeichnis aller zu legen. Ich habe nicht allzu viel auf dem Computer installiert, auf dem ich das tippe, aber mein Home-Verzeichnis enthält etwa hundert Punktdateien, und ich weiß gar nicht, was die meisten sind oder ob sie noch benötigt werden . Jede Dateinamenauswertung, die mein Heimatverzeichnis durchläuft, wird durch diesen angesammelten Schlamm verlangsamt.
Ich bin mir ziemlich sicher, dass das Konzept einer versteckten Datei eine unbeabsichtigte Folge war. Es war sicherlich ein Fehler.
(Für diejenigen, die Einwände dagegen haben, dass Punktdateien einem Zweck dienen, bestreite ich dies nicht, sondern widerspreche, dass die Dateien dem Zweck dienen und nicht der Konvention für ihren Namen. Sie könnten genauso einfach in $ HOME / cfg oder $ HOME stehen / lib, das haben wir in Plan 9 getan, in dem es keine Punktdateien gab. Lektionen können gelernt werden.)
Was ich verstehe ist also:
Als diese "Punktdateien" unsichtbar wurden, sprangen andere Programmierer ein und beschlossen, dass der Ort, an dem sie ihre wertvollen Konfigurationsdaten speichern sollten, in Punktdateien neben den Dateien .
und enthalten war ..
. Da die Dateierhierarchie zu Beginn noch nicht sehr weit fortgeschritten war, landeten sie alle im $ HOME-Verzeichnis, und dies wurde schnell zu einer ungeschriebenen Konvention, an die sich alle beteiligten, und zwar in den Schritten der Gründerväter.
Dies führte zu solchen Monstrositäten wie:
Referenz :
Linux-Geschichte: Wie aus Punktdateien versteckte Dateien wurden