Wenn ich den Befehl cp oder move in einem Terminalfenster verwende, bin ich derzeit mit Bash in einem bestimmten Ordner wie diesem.
NES@server:~/Desktop/dir1$
Und jetzt möchte ich eine Datei von hier ~/anotherdir/dir2
in den aktuell ausgewählten Ordner in Bash (Dir1) kopieren. Ich würde den Befehl verwenden
cp ~/anotherdir/dir2/file ~/Desktop/dir1
Gibt es eine Verknüpfung, die auf das aktuell ausgewählte Verzeichnis verweist? Damit ich in diesem Beispiel nicht den vollständigen Pfad zum Zielverzeichnis angeben muss, aber der Befehl weiß, dass das aktuell ausgewählte Verzeichnis in bash verwendet werden soll? dh wie steht ~ für das Heimatverzeichnis?
..
ein Verzeichnis niedriger bedeutet. Kann mehrfach verwendet werden, dhcd ../..
..
bringt Sie also in das übergeordnete Verzeichnis Ihres aktuellen Verzeichnisses. Guter Punkt.popd
und ,pushd
aber das ist in einem Aufsatz drehen..
und..
ist auf Dateisystemebene, so dass jedes Programm wird sich akzeptieren. Auf der anderen Seite sind Verknüpfungen wie~
und~-
Teil der Shell.cd -
; Ich wusste nicht, dass es existiert.Sie können $ (pwd) verwenden. Es wird in die Ausgabe des Befehls pwd aufgelöst.
Beispiel:
quelle
echo $PWD
../ steht für das aktuelle Verzeichnis. So können Sie Befehl verwenden
cp ~/anotherdir/dir2/file ./
Dies kopiert die Datei "Datei" in das richtige Arbeitsverzeichnis.quelle
ln -s /some/long/path/to/get/to/cake
kein zweites Argument angeben, wird dercake
symbolische Link tangential direkt in Ihren aktuellen eingefügt. Sehr gut für die Faulen. Speichert a.
.Um das aktuelle Verzeichnis als Zielverzeichnis zu verwenden, verwenden Sie einen einzelnen Punkt '
.
'.Lange Antwort
Mit Ihrem Beispiel würden Sie Folgendes eingeben:
cp ~/anotherdir/dir2/file .
Um zu sehen , den Punkt
.
,..
und../../
Verzeichnisnamen in Aktion, kopieren und fügen Sie die folgenden Befehle in Ihr Terminal:Die Ausgabe des Befehls tree sieht folgendermaßen aus:
Die
.
Ausgabe oben in der Baumstruktur stellt das neue aktuelle Verzeichnis dara
, zu dessen Großelterna/b/c
wir mit demcd ../../
Befehl navigiert sind . Daruntera
sehen wir die Unterverzeichnissea/b
,a/b/c
unda/b/c2
Zeile für Zeile Analyse
Zuerst haben wir 4 Verzeichnisse in einer Zeile erstellt, indem wir
&&
mehrere Zeilen miteinander verbunden haben.Dann haben wir in das Verzeichnis gewechselt
a/b/c
, das das aktuelle Verzeichnis für die folgenden Kopierbefehle ist:cp
) setzen wir das Ziel mit auf unser aktuelles Verzeichnis ( c ).
...
.../c2
Dann haben wir, wie bereits erwähnt, das aktuelle Verzeichnis in geändert
a
und dentree
Befehl ausgeführt, um alle Verzeichnisse und Dateien unter anzuzeigena
.Aufräumen
Nachdem wir fertig sind, entfernen wir die drei Verzeichnisse und Dateien mit:
quelle
Die Umgebungsvariable für das aktuelle Verzeichnis ist $ PWD
quelle
Sie können den Punkt (
.
), die~+
Tilde-Erweiterung , denpwd
Befehl oder die Variable $ PWD verwenden, um das aktuelle Arbeitsverzeichnis (CWD) darzustellen. All diese Befehle können das tun:mv file_old_dir .
mv file_old_dir ~+
mv file_old_dir $(pwd)
mv file_old_dir $PWD
quelle
Ja (wie bereits erwähnt), das aktuelle Verzeichnis ist ".". Aus diesem Grund können Sie Programme / Skripte aus dem aktuellen Verzeichnis mit "./script" starten (nur Skripte funktionieren nicht, wenn. Nicht Teil von PATH ist, was nicht empfohlen wird obwohl). Die Verwendung von $ PWD oder $ (pwd) ist ein bisschen übertrieben, auch wenn andere erwähnt haben, dass die Verwendung eines einzelnen Punkts mit Sicherheit kürzer ist :) ".." ist das übergeordnete Verzeichnis, mit Sicherheit ist "/" das Stammverzeichnis. Es ist auch schön zu erwähnen, dass "cd -" Sie in das vorherige Verzeichnis versetzt, in dem Sie sich befanden, bevor Sie cwd (aktuelles Arbeitsverzeichnis) geändert haben. Es kann auch bei der täglichen Arbeit nützlich sein. Ein einzelner "cd" -Befehl ohne einen anderen in der Befehlszeile versetzt Sie in "~" (Ihr Zuhause).
quelle
$PWD
ist kein Overkill beim Erstellen von Symlinks zu absoluten Pfaden.