pushd
, < href="http://www.gnu.org/software/bash/manual/html_node/Directory-Stack-Builtins.html#Directory-Stack-Builtins"> popd
e dirs
são construções de shell que permitem manipular o < uma pilha de diretórios . Isso pode ser usado para alterar diretórios, mas retornar ao diretório do qual você veio.
Por exemplo
inicie com os seguintes diretórios:
$ ls
dir1 dir2 dir3
pushd para dir1
$ pushd dir1
~/somedir/dir1 ~/somedir
$ dirs
~/somedir/dir1 ~/somedir
O comando dirs
confirma que temos 2 diretórios na pilha agora. dir1
e o diretório original, somedir
.
pushd para ../dir3 (porque estamos dentro de dir1
agora)
$ pushd ../dir3
~/somedir/dir3 ~/somedir/dir1 ~/somedir
$ dirs
~/somedir/dir3 ~/somedir/dir1 ~/somedir
$ pwd
/home/saml/somedir/dir3
dirs
mostra que temos 3 diretórios na pilha agora. dir3
, dir1
e somedir
. Observe a direção. Todo novo diretório está sendo adicionado à esquerda. Quando começamos a publicar diretórios, eles também vêm da esquerda.
altere manualmente os diretórios para ../dir2
$ cd ../dir2
$ pwd
/home/saml/somedir/dir2
Agora comece a criar diretórios
$ popd
~/somedir/dir1 ~/somedir
$ pwd
/home/saml/somedir/dir1
Observe que voltamos para dir1
.
Pop novamente ...
$ popd
~/somedir
$ pwd
/home/saml/somedir
E voltamos aonde começamos, somedir
.
Pode ficar um pouco confuso, mas o chefe da pilha é o diretório em que você está. Por isso, quando voltarmos para somedir
, mesmo que dirs
mostre isso:
$ dirs
~/somedir
Nossa pilha é de fato vazia.
$ popd
bash: popd: directory stack empty