In Bash und ähnlichen Shells cd -
wird das aktuelle Verzeichnis in ein zuvor besuchtes Verzeichnis geändert. Das ist oft sehr praktisch. Ich frage mich, ob es eine ähnliche Abkürzung zum Kopieren oder Verschieben von Dateien gibt, wie:
~/project-a/ $ cd ../project-b
~/project-b/ $ cp Makefile LICENSE - # this won't work, hence the question
zsh
Auch über konkrete Antworten würde ich mich freuen .
Antwort1
Wenn Ihre Shell über verfügt cd -
, verfügt sie wahrscheinlich entweder über die spezielle Variable $OLDPWD
und/oder die Verknüpfung ~-
für das Verzeichnis, in dem Sie sich zuvor befunden haben.
cp Makefile LICENSE "$OLDPWD/"
cp Makefile LICENSE ~-
cat ~-/Makefile
Tatsächlich ist die POSIX-Shell-Sprache (auf der ksh/bash/zsh basieren)gibt andas cd -
sollte gleich sein cd "$OLDPWD"
.
Antwort2
Sie können immer verwendenShell-Rückanführungszeichen.
Sie verhalten sich wie eine Untershell: Der Befehl in den Backquotes wird zuerst ausgeführt und seine Ausgabe als Argument des Hauptbefehls platziert.
~/folderA$ cd ../folderB
~/folderB$ cp Makefile `cd -`
# gets expended to "cp Makefile ~/folderA"