Der Punkt-Schrägstrich, ./
, ist ein relativer Pfad zu etwas im aktuellen Verzeichnis.
Der Punkt ist das aktuelle Verzeichnis und der Schrägstrich ist ein Pfadbegrenzer.
Wenn Sie den Befehl touch ./a
geben Sie sagen "führen Sie touch
aus Dienstprogramm mit dem Argument ./a
" und touch
erstellt (oder aktualisiert den Zeitstempel für) die Datei a
im aktuellen Verzeichnis.
Es gibt keinen Unterschied zwischen touch a
und touch ./a
da beide Befehle auf das Ding namens a
wirken im aktuellen Verzeichnis.
Auf ähnliche Weise touch ../a
wirkt auf a
im Verzeichnis über dem aktuellen Verzeichnis als ..
bezieht sich auf "ein Verzeichnis weiter oben in der Hierarchie".
.
und ..
sind zwei spezielle Verzeichnisnamen die in jedem Verzeichnis auf Unix-Systemen vorhanden sind.
Es ist nützlich, ./
eingeben zu können vor einem Dateinamen, z. B. wenn Sie versuchen, eine Datei mit einem Bindestrich als erstem Zeichen im Dateinamen zu erstellen oder zu löschen oder einfach damit zu arbeiten.
Zum Beispiel
touch -a file
erstellt keine Datei namens -a file
, und beides nicht
touch '-a file'
Aber,
touch ./'-a file'
würde.
Die ./
Notation ist nützlich, wenn Sie versuchen, ein Skript oder eine andere ausführbare Datei im aktuellen Verzeichnis auszuführen. Im Gegensatz zur Windows-Eingabeaufforderung überprüfen Unix-Shells (und Unix-ähnliche Systeme wie Linux) das aktuelle Verzeichnis nicht auf ausführbare Dateien, bevor sie PATH
überprüfen Umgebungsvariable, und Unix-Systeme neigen dazu, ./
nicht einzuschließen im PATH
aus Sicherheitsgründen. Indem Sie angeben
./executable
statt nur
executable
der Benutzer sagt:"Ja, tue ich diese ausführbare Datei im aktuellen Verzeichnis ausführen möchten"
Dies wird als relativer Pfad bezeichnet.
.
stellt das aktuelle Arbeitsverzeichnis dar. Wenn Sie sich also gerade in /home/jesse
befinden , .
ist einfach ein Link zu /home/jesse
also wenn Sie auf ./
zeigen Sie zeigen wirklich auf /home/jesse/