Gibt es ein Äquivalent zu cd – für cp oder mv?

Gibt es ein Äquivalent zu cd – für cp oder mv?

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

zshAuch ü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 $OLDPWDund/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"

verwandte Informationen