Wie praktisch ist es, ./ im Terminal zu verwenden?


3

Ich bin neu in Linux. Bisher kann ich einfach durch Verzeichnisse navigieren und Dateiberechtigungen ändern. Ich kann auch einige Python / Java-Aufgaben im Terminal erledigen. Meine Frage ist, dass ich bei der Verwendung von cd / ls / rm und dergleichen immer ./ verwende, wenn ich auf Unterverzeichnisse verweise. Ist das eine gute oder schlechte Angewohnheit?

Antworten:


2

./file_namewird verwendet, um eine Datei auszuführen, die sich im aktuellen Verzeichnis befindet. Diese Datei muss natürlich ausführbar sein.

Wenn Sie in ein Unterverzeichnis wechseln möchten, geben Sie einfach ein

cd sub-directory_name

Welches ist das gleiche, dass

cd ./sub-directory_name

Ich dachte ./ sollte nur das Verzeichnis angeben, in dem Sie sich gerade befinden? Wie in meinem Home-Ordner mache ich CD ./Workspace anstelle von CD Workspace
WillumMaguire

1
Genau! Es ist also eine gute Angewohnheit, denke ich. Dies ist jedoch nützlicher, wenn Sie eine Datei
ausführen

Willkommen in der GNU / Linux-Welt! : -
slackmart

2
Die Verwendung ./file_namedient Sicherheitszwecken. Linux wird standardmäßig NICHT hinzugefügt ., $PATHsodass Sie ein Paket nicht einfach entpacken können und die Person hinterhältig ist und eine böse Binärdatei mit dem Namen hat ls, die Sie gerade ausgeführt haben. Dies zwingt Sie zur Eingabe, ./lswenn Sie diese neue Binärdatei wirklich in Ihrem aktuellen Verzeichnis ( .) anstelle der Standarddatei ausführen möchten ls.
UtahJarhead

Yeah @UtahJarhead !, da stimme ich dir zu.
Slackmart

0

Sobald Sie mit der Verwendung beginnen $CDPATH, gibt es einen weiteren Unterschied zwischen cd subdirund cd ./subdir: Der erste sucht nach CDPATH, wenn das Verzeichnis im aktuellen Verzeichnis nicht gefunden wird, der zweite nicht; Darüber hinaus gibt der erste Pfad den Zielpfad zur Standardausgabe aus, der zweite nicht.

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.