Mir wurde gesagt, dass ich das ausführen soll:
./yiic message ./app/messages/config.php
Aber ich verstehe die ./
Bedeutung nicht, kann jemand bitte klären.
Hinweis: Glauben Sie mir, das können wir nicht googeln. Ich habe es versucht:
./ bedeutung ./ ubuntu
Es war dasselbe wie nichts. :(
Antworten:
./
oder ist einfach.
eine Unix-Abkürzung für das aktuelle Verzeichnis.Sie müssen es angeben, wenn sich das aktuelle Verzeichnis nicht in Ihrem PATH befindet. Der Pfad ist die Liste der Ordner, die beim Ausführen eines Programms durchsucht werden. (Sie können dies durch Schreiben feststellen
echo $PATH
.) Wenn sich eine ausführbare Datei nicht in Ihrem PATH befindet, müssen Sie zum Ausführen den Ordner angeben, in dem sie sich befindet. Sie können dies tun, indem Sie den vollständigen Pfad zur Datei angeben, wenn sich die Datei jedoch in befindet Das aktuelle Verzeichnis können Sie./
als Kurzschreibweise verwenden.In ähnlicher Weise steht
../
oder steht nur..
die Kurzform für das Verzeichnis über dem aktuellen.quelle
.
. Dies liegt daran, dass die automatische Verwendung des aktuellen Verzeichnisses eine Sicherheitslücke darstellt. Stellen Sie sich vor, jemand anderes erstellt ein Programm, benennt esls
und Siecd
in seinem Verzeichnis und geben dannls
Jedes Verzeichnis in der Befehlszeile hat zwei "spezielle Verzeichnisse" namens
.
und..
. Dies sind Abkürzungen für das aktuelle Verzeichnis bzw. das Verzeichnis, das das aktuelle Verzeichnis enthält.Zum Beispiel
cd ./more/directory/names
bedeutet dies einfach "Beginne mit dem aktuellen Verzeichnis und fahre mit dem Pfad fort". In ähnlicher Weisecd ..
bedeutet der Befehl "ein Verzeichnis wechseln".Wenn Sie den Namen Ihres aktuellen Verzeichnisses möchten, können Sie den
pwd
Befehl verwenden. Wenn Sie das-a
Flag für verwendenls
, werden diese beiden speziellen Verzeichnisse angezeigt. Das heißt, esls -a
wird eine Liste ausgegeben, die mit.
und beginnt..
.quelle
Andere haben bereits erklärt, was
.
und was es..
bedeutet (aktuelles Verzeichnis bzw. übergeordnetes Verzeichnis). Dies gilt für alle Pfadnamen.Wenn Sie ein Terminal öffnen, starten Sie normalerweise in Ihrem Home-Verzeichnis:
~
(das erweitert wird zu/home/username
). Die folgenden Pfade sind alle gleich, vorausgesetzt, Ihr aktuelles Arbeitsverzeichnis lautet/home/username
:/home/username
.
../username
../../home/username
../../../home/username
(Das übergeordnete Verzeichnis von/
ist noch/
)./././././.
(das aktuelle Verzeichnis im aktuellen Verzeichnis im ...)./
(abschließende Schrägstriche sind für Verzeichnisse zulässig)/home////username///
(und so sind mehrere Schrägstriche)Verwechseln Sie nicht
./program
mit. program
../program
Führt eine Datei im aktuellen Verzeichnis mit gesetztem Ausführungsbit aus.. ./program
ist eine Bash-Sache und kann alternativ so geschrieben werden,source ./program
dass Bash-Befehle aus derprogram
Datei im aktuellen Verzeichnis gelesen und in der aktuellen Shell ausgeführt werden.Wenn Sie sich fragen , warum Sie gerade laufen
gedit
statt/usr/bin/gedit
und nichtprogram
statt./program
oder/home/username/program
finden Sie die dazugehörige Frage:quelle
Es bedeutet, von der zu beginnen
current directory path
.Nehmen wir an, Sie haben
path
Folgendes:und drinnen
/usr/bin/
gibt es eine ausführbare Datei namensyiic
.Wenn Sie
yiic
es herausgeben, würde es das in beginnen/usr/bin/
.Mit dieser Meldung weisen
./yiic
Sie das System an, im aktuellen Verzeichnis nach dieser ausführbaren Datei zu suchen.quelle
/home/mysuser/
und navigiere dort mithilfe voncd /home/myuser
. Sobald ich drinnen war, glaubte ich, dass es funktionieren sollte, wenn ich nur yiic mache, weil ich angerufen habe, während ich in diesem Verzeichnis war. Aber er sagt Befehl nicht Datei. Wenn ich das gleiche mache und die ./ dann benutze, läuft sie einwandfrei ... Kannst du bitte noch ein bisschen mehr klären?.
ist eine spezielle Datei in einem Ordner, die du sehen kannst, wenn du einels -la
im Verzeichnis