$ pwd
/tmp/d1
$ dirs
/tmp/d1
$ pushd ../d2
/tmp/d2 /tmp/d1
$ popd
/tmp/d1
$ pwd
/tmp/d1
Es scheint, dass pushd
das aktuelle Verzeichnis immer zB in den Stapel geschoben wird , obwohl ich es als ? /tmp/d1
ausführe .pushd ../d2
Beachten Sie, dass:http://linux.101hacks.com/cd-command/dirs-pushd-popd/
Das erste Verzeichnis der Ausgabe des Dir-Befehls ist immer das aktuelle Verzeichnis und nicht der Inhalt des Stapels.
Antwort1
Nein, pushd
pusht nicht immer das aktuelle Verzeichnis. Von bash
' man
Seite:
pushd [-n] [+n] [-n]
pushd [-n] [dir]
Adds a directory to the top of the directory stack, or rotates
the stack, making the new top of the stack the current working
directory. With no arguments, exchanges the top two directo‐
ries and returns 0, unless the directory stack is empty.
.
.
dir Adds dir to the directory stack at the top, making it
the new current working directory.
Das Formular mit einem Verzeichnis pushd [dir]
verwendet das aktuelle Verzeichnis nicht, es sei denn, dieses Verzeichnis wird explizit als Argument verwendet.pushd somedir
Antwort2
Ich verwende es zsh
und es hat eine Option PUSHD_IGNORE_DUPS
: „Nicht mehrere Kopien desselben Verzeichnisses auf den Verzeichnisstapel legen.“. Möglicherweise müssen Sie Ihre Shell-Optionen überprüfen ( zsh
ich musste das nämlich tun unsetopt pushdignoredups
.)