Was ist das Besondere an Verzeichnissen, deren Namen mit einem Punkt beginnen?

25

Ich fragte mich, was der Unterschied zwischen diesen beiden war:

~/somedirectory/file.txt

und

~/.somedirectory/file.txt

Es ist wirklich schwierig, dies bei Google zu erfragen, da ich nicht wusste, wie .ich es erklären sollte, obwohl ich nicht einmal wusste , wie ich es nennen soll. Aber kann jemand den Unterschied zwischen dem Einschließen des Punkts und dem Ausschließen desselben beschreiben?

Dunkler Templer
quelle

Antworten:

18

Unter Unix-ähnlichen Systemen enthalten alle Verzeichnisse zwei Einträge .und.. , die für das Verzeichnis selbst bzw. dessen übergeordnetes Verzeichnis stehen. Diese Einträge sind die meiste Zeit nicht interessant, also lsblenden Sie sie aus, und Shell-Platzhalter wie *enthalten sie nicht. Allgemeiner lsund Platzhalter verbergen alle Dateien, deren Name mit einem .; beginnt . Dies ist eine einfache Möglichkeit, Benutzer auszuschließen .und ..zuzulassen, andere Dateien aus Listen auszublenden. Abgesehen davon, dass diese Dateien von der Auflistung ausgeschlossen sind, haben sie nichts Besonderes.

Unix speichert Konfigurationsdateien pro Benutzer im Basisverzeichnis des Benutzers. Wenn alle Konfigurationsdateien in Dateilisten angezeigt würden, würde das Ausgangsverzeichnis mit Dateien überfüllt sein, die den Benutzern nicht jeden Tag wichtig sind. Konfigurationsdateien beginnen also immer mit einem .: Normalerweise heißt die Konfigurationsdatei für die Anwendung Foo so etwas wie .foooder .foorc. Aus diesem Grund werden Benutzerkonfigurationsdateien häufig als Punktdateien bezeichnet .

Gilles 'SO - hör auf böse zu sein'
quelle
1
„Allgemeiner lsund Platzhalter ausblenden , um alle Dateien , deren Name mit A beginnt ., das ist eine einfache Möglichkeit, auszuschließen .und ..und erlauben Benutzern , andere Dateien von Listings zu verstecken.“ Dies klingt wie folgt: Das Konzept des Versteckens von Dateien / Verzeichnissen, die mit einem Punkt beginnen, scheint sich tatsächlich zu verbergen . ... Später erkannten die Leute jedoch, dass das Verbergen einiger Dateien / Verzeichnisse einen Wert hat, und begannen daher, einen Punkt an den Anfang der Dateien zu setzen, die versteckt werden sollen. Ist das wirklich der Fall oder nur eine Spekulation?
Utku
3
@Utku Eigentlich war es zumindest zunächst umgekehrt: Der ursprüngliche Entwickler wollte sich nur verstecken .und ..machte doch einen Fehler . Es ist jedoch möglich, dass er von der Korrektur abgeraten wurde, weil einige Benutzer dies für nützlich hielten, und der Grund, warum Benutzerkonfigurationsdateien mit beginnen, .ist definitiv, dass sie nicht die Ausgabe von lsim Ausgangsverzeichnis überladen . Ich glaube, wir haben hier eine Frage, aber ich kann sie nicht finden, sie könnte falsch sein.
Gilles 'SO- hör auf böse zu sein'
15

Verzeichnisse, die mit einem Punkt beginnen, .gelten als ausgeblendet. Das bedeutet:

  • ~/somedirectoryund ~/.somedirectorysind verschiedene Verzeichnisse. Das heißt, wenn es ~/somedirectoryexistiert und Sie es getan haben mkdir ~/.somedirectory, werden Sie mit einer File ExistsNachricht nicht scheitern .

  • Der lsBefehl zeigt keine Verzeichnisse an, die mit dem beginnen.

  • Das ls -azeigt beide Verzeichnisse an

Tom
quelle
6
ls -A zeigt Dateien und Verzeichnisse an, die mit beginnen. beinhaltet aber nicht die. und .. Einträge.
Julian
7

Einzelheiten zum Unix-Dateisystem finden Sie im Standard . Insbesondere werden Punktdateien für Konfigurationsdateien in einem Benutzerverzeichnis verwendet, und wenn ein Programm mehr als eine hat, sollte es diese in ein Punktverzeichnis stellen.

Dadurch werden die Dateien vor dem Benutzer ausgeblendet, sofern er sie nicht finden möchte . Auf diese Weise werden sie nicht behindert, und die Werkzeuge werden nicht versehentlich mit ihnen in Konflikt geraten.

Spencer Rathbun
quelle
4

Die Führung "." In einem Verzeichnis oder Dateinamen wird dieses Verzeichnis oder diese Datei bei der Ausführung eines lsBefehls ausgeblendet .


quelle
1
Sie können alle Dateien anzeigen, die mit "." Beginnen. mit ls -a.
Sardathrion
1

Wie @ DaveNay bereits sagte, wird dieser Zeitraum dazu führen, dass die Datei oder das Verzeichnis ausgeblendet wird.

Für Ihre zweite implizite Frage ist dies die Art und Weise, wie Sie in Google danach suchen:

Geben Sie einfach in das Suchfeld ein: Linux-Punkt vor dem Namen


quelle