Was bedeuten "." Und ".." in einem Ordner?

34

Wenn ich ls -aversteckte Dateien im Ordner betrachtete, wurden standardmäßig 2 versteckte Dateien erstellt. Welche Bedeutung haben diese beiden Dateien .und ..?

ls -a

Produziert

.  ..
mr_eclair
quelle
Ich benutze sie oft, wenn ich eine mache, ls -lada es mir die Berechtigungen und den Besitz des Verzeichnisses anzeigt, in dem ich mich
befinde,
Ich habe nicht genug Repräsentanten hier, um abzustimmen, um zu schließen, aber ich habe eine Markierung auf diese Frage gesetzt, da es sich um eine Frage handelt, die in 3 Sekunden durch Durchsuchen von Google beantwortet werden kann sind zu einfach auf SO Blog).
zzzzBov
1
^ zzzzBov Vielen Dank auf Spanisch für Ihre Großzügigkeit.
mr_eclair

Antworten:

40

. ist der aktuelle Ordner.

.. ist der Ordner über dem aktuellen Ordner - der Ordner, der den aktuellen Ordner enthält.

Manchmal wird dieser einzelne Punkt verwendet, wenn jemand ein Skript in seinem Ausgangsverzeichnis ausführen möchte. Zum Beispiel: ./install-app.sh. Das heißt, die Datei "install-app.sh" befindet sich im aktuellen Verzeichnis. Es wäre genauso gültig, /home/username/directory/install-app.sh auszuführen. Auf die gleiche Weise können Sie auch ../install.app ausführen, wenn sich die Datei im übergeordneten Verzeichnis befindet. Der Grund, warum dies so ist, ist nicht nur für die Navigation, sondern auch, dass es nicht möglich sein sollte, Systemanwendungen versehentlich auszublenden, indem einfach eine Datei in Ihrem Home-Verzeichnis falsch benannt wird.

dv3500ea
quelle
100% richtig. Stellen Sie sich diese als Hooks vor, die sich in jedem einzelnen Verzeichnis befinden. Sie dienen ausschließlich der Navigation. Sie werden feststellen, dass dies nicht nur ein Linux-Standard ist, sondern auch unter Windows. Wahrscheinlich das gleiche auf Unix und Mac, aber ich habe noch nie in einer ihrer Eingabeaufforderungen herumgespielt.
Ctuchik
1
cd / ; cd ..: P
htorque
1
Dies ist auch bei FreeBSD so, und ich stelle mir vor, dass es auch bei Mac so ist, da Mac auf Darwin BSD basiert.
Azendale
htorque: bist du vielleicht eine religiöse person? :)
Jo-Erlend Schinstad
Es läuft unter Mac OS X (funktioniert genau wie jedes andere Unix, obwohl die GUI einige davon verbirgt). Mac OS Classic hatte sie nicht; ::wurde für das vorherige Verzeichnis verwendet. Pfade ohne :in ihnen waren aktuelles Verzeichnis. Andernfalls wurde ein vollständiger Pfad (beginnend mit dem Datenträgernamen) erwartet, wobei die Komponenten durch begrenzt sind :. Ex:Macintosh HD:System Folder:Finder
Derobert
4

Dies sind Hardlinks zu den Verzeichnissen self (.) Und parent (..). Sie werden erstellt, wenn Sie ein Verzeichnis erstellen. Sie können niemals gelöscht werden (ohne das Verzeichnis zu löschen, auf das sie zeigen).

Wenn Sie ein Verzeichnis erstellen:

mkdir /tmp/foo

Sie können sehen, dass es tatsächlich 2 Hardlink zu / tmp / foo gibt:

drwxr-xr-x 2 michal michal 4096 2011-08-07 18:40 /tmp/foo
           ^---- two hardlinks

Das erste ist aus dem Verzeichnis / tmp /, das auf / tmp / foo verweist, und das zweite ist das '.' mit in / tmp / foo / auf sich selbst zeigen.

Michał Šrajer
quelle
2

Beachten Sie auch, dass Sie ls -A(anstelle von ls -a) alle Dateien einschließlich versteckter Dateien auflisten können, jedoch die Verzeichnisse .und ausschließen ...

Paddy Landau
quelle
0

. Aktueller Ordner

.. übergeordneter Ordner

RobinJ
quelle