Was sind "." Und ".." in einem Verzeichnis?


Antworten:


40

Das . ist das aktuelle Verzeichnis, während .. das übergeordnete Verzeichnis bezeichnet. Dies beschleunigt auch die Befehlszeile, sodass Sie keine vollständigen Pfade eingeben müssen.

Beispiel:

gehe 2 Verzeichnisse hoch:

cd ..\..\

oder auf einem UNIX-basierten System, um ausführbare Binärdateien im aktuellen Verzeichnis auszuführen:

./program

Viele UNIX-Skripte werden ebenfalls verwendet. um das aktuelle Verzeichnis darzustellen, um zum Beispiel nach Dateien zu suchen (Perl):

#!/usr/bin/perl

opendir ( DIR, "." ) || die "Error opening current directory\n";
while( ($f = readdir(DIR))){
     print("$f\n");
}
closedir(DIR);

Es ist viel portabler, wenn Sie das Skript in andere Verzeichnisse oder Systeme verschieben möchten, da ein Verzeichnisname nicht fest codiert ist.


3
Es ist wenig bekannt, aber die Windows-Befehlszeile erweitert dies weiter. . = dieses Verzeichnis .. = Elternverzeichnis ... = Elternverzeichnis 3 Punkte sind manchmal nützlich, viel mehr als das und es ist einfach zu schwer damit umzugehen.
Lachs Elch

4
3 Punkte funktioniert bei mir nicht, mit Vista
Kevin Panko

1
noch ich auf Windows 7 64-Bit-RTM. Klingt für mich nach einem Mythos. Was ist los mit .. \ .. überhaupt?
AdamV

2
@salmonmoose: Funktioniert auch nicht mit XP.
Simon P Stevens


10

Das ..wird verwendet, um in der Hierarchie des Dateisystems nach oben zu navigieren. Dies ist nützlich, wenn Sie keinen langen Pfad eingeben möchten oder wenn Sie ein Skript / Programm schreiben, das nicht genau weiß, wo es installiert wird, aber ../media/alle Bilder / Videos / Symbole usw. enthalten soll.

Der einzelne Punkt .ist unter Linux nützlich, wenn Sie eine ausführbare Datei im aktuellen Verzeichnis ausführen möchten, also geben Sie ihn ein, ./a.outda die Befehlsshell das aktuelle Verzeichnis standardmäßig nicht nach ausführbaren Dateien durchsucht (aus Sicherheitsgründen).

Der einzelne Punkt .wird auch verwendet, wenn Sie das aktuelle Verzeichnis als Argument an einen Befehl übergeben möchten.


1
PowerShell enthält auch nicht. in der Pfadliste für die Suche nach ausführbaren Dateien.
Joey

Wie bestelle ich? als Argument für einen Befehl?
Kalkül

@DeFu Sie passieren den Punkt als ein Punkt, zum Beispiel:ls .
hasen

ls funktioniert genauso wiels .
Calculus

@DeFu gut ja , aber wenn Sie tun , ls .Sie sind vorbei ‚‘ als Argument für 'ls'; hast du das nicht gefragt? Dies funktioniert genauso, da standardmäßig lsdas aktuelle Verzeichnis aufgelistet wird und .es sich um das aktuelle Verzeichnis handelt. Aber Sie geben es auf jeden Fall an den Befehl weiter.
Hasen

5

Das . ist das aktuelle Verzeichnis. Sie müssen dies selten verwenden. Die meisten Befehle übernehmen das aktuelle Verzeichnis. Das .. ist das nächste Level; Dies ist eine ziemlich nützliche Abkürzung. Wenn Sie sich in C: \ foo \ bar befinden und zu C: \ foo \ bar2 wechseln möchten, können Sie sagen

cd ..\bar2

und Sie werden in C: \ foo \ bar2 sein. Wenn Sie nicht zu bar2 wechseln, sondern nur C: \ foo \ bar.exe ausführen möchten, können Sie sagen

..\bar.exe

oder .. \ bar, um es auszuführen, ohne zum übergeordneten Verzeichnis zurückzukehren. Dies ist natürlich nützlicher, wenn es sich um einen längeren Pfad als C: \ foo handelt (z. B. "C: \ Users \ Daniel \ My Dropbox \").


1
Ich finde . Dies ist manchmal sehr nützlich, insbesondere wenn Sie Dateien an den aktuellen Speicherort kopieren oder verschieben ( copy F:\*.foo .) oder auf andere Weise darauf verweisen ( start .z. B. den Explorer im aktuellen Verzeichnis öffnen).
Joey

3

Sie stehen für:

.

Die aktuelle Richtung

.. 

Repräsentiert das übergeordnete Verzeichnis

Also, wenn Sie die ausführbare Datei "su.exe" in:

  • Umgebungsvariable "Pfad" (z. B. C: \ MyExecutables \ su.exe)
  • Ihre aktuelle Richtung
  • Deine Eltern dir.

Sie könnten jeden wie folgt ausführen:

 su.exe  

Führt den im Pfad angegebenen aus

.\su.exe 

Führt das in der aktuellen Richtung aus

..\su.exe

Führt das im übergeordneten Verzeichnis aus.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.