Was macht cd - (cd-Bindestrich)?

14

Ich habe cd -heute versehentlich das Terminal eingegeben und eine Fehlermeldung erhalten:

bash: cd: OLDPWD not set

Und existiert leider man cdnicht.

No manual entry for cd

Was macht es eigentlich?

Dan
quelle
3
cdist ein eingebauter Bash. Es ist daher in man bash-builtinsstatt einer eigenen Seite dokumentiert . Dies gilt auch für alle anderen Bash-Buildins. Sie können bash: an der Fehlermeldung erkennen, dass es sich um eine integrierte Funktion handelt .
kiri

Antworten:

17

cd - wechselt zwischen dem alten und dem neuen aktuellen Arbeitsverzeichnis.

avinash @ avinash-Lenovo-IdeaPad-Z500: ~ $ cd -
bash: cd: OLDPWD nicht gesetzt
avinash @ avinash-Lenovo-IdeaPad-Z500: ~ $ cd ~ / Desktop
avinash @ avinash-Lenovo-IdeaPad-Z500: ~ / Desktop $ pwd
/ home / avinash / Desktop
avinash @ avinash-Lenovo-IdeaPad-Z500: ~ / Desktop $ cd -
/ home / avinash
avinash @ avinash-Lenovo-IdeaPad-Z500: ~ $ 

Siehe auch,

avinash @ avinash-Lenovo-IdeaPad-Z500: ~ $ echo $ OLDPWD

avinash @ avinash-Lenovo-IdeaPad-Z500: ~ $ cd ~ / Desktop
avinash @ avinash-Lenovo-IdeaPad-Z500: ~ / Desktop $ echo $ OLDPWD
/ home / avinash
avinash @ avinash-Lenovo-IdeaPad-Z500: ~ / Desktop $ cd d
avinash @ avinash-Lenovo-IdeaPad-Z500: ~ / Desktop / d $ echo $ OLDPWD
/ home / avinash / Desktop
avinash @ avinash-Lenovo-IdeaPad-Z500: ~ / Desktop / d $ 

Die $OLDPWDVariable speichert den Pfad des vorherigen aktuellen Arbeitsverzeichnisses.

Avinash Raj
quelle
8

Die Antwort von Avinash Raj ist völlig korrekt, aber für die manuelle Eingabe können Sie die POSIX-Handbuchseiten abrufen, und dann man cdfunktioniert Folgendes :

sudo apt-get install manpages-posix
man cd

Das Bit, das Ihnen all dies sagt, ist der Abschnitt OPERANDS:

-      When a hyphen is used as the operand, this shall be equivalent to the command:

       cd "$OLDPWD" && pwd

which changes to the previous working directory and then writes its name.
Oli
quelle