Ele vai para o diretório inicial após o último pop porque você estava em seu diretório inicial quando pressionou /tmp/dir1
nessa pilha. ~
é o seu diretório inicial. Esta parte:
user@ubuntu:~$ pushd /tmp/dir1
/tmp/dir1 ~
Especificamente, quando a pilha de diretórios está vazia, ela adiciona o diretório de trabalho atual ao final da pilha.
Veja um exemplo de /etc
:
bash-4.3$ cd /etc
bash-4.3$ pushd /usr
/usr /etc
O comportamento popd
também é adequado. Ele removeu o diretório mais antigo, mas você também perdeu a parte que foi para o novo diretório principal depois que o antigo foi removido. Leia o manual novamente:
Portanto, no seu caso, com pilha /tmp/dir2 /tmp/dir1 ~
, primeiro popd
removido /tmp/dir2
. Então, qual é o novo topo da pilha? /tmp/dir1
, então ele também executará cd /tmp/dir1
.
Observe:
bash-4.3$ pwd
/etc
bash-4.3$ pushd /bin
/bin /etc
bash-4.3$ pushd /usr
/usr /bin /etc
bash-4.3$ pushd /sys
/sys /usr /bin /etc
bash-4.3$ popd
/usr /bin /etc
bash-4.3$ pwd
/usr