-
cd -
não é o mesmo quecd ..
. O comandocd -
vai para o diretório anterior em que você estava. Por exemplo, se você estiver em/home/bob
e executarcd /var/log
, a execução decd -
levará você de volta %código%./home/bob
, por outro lado, sempre vai para o diretório pai. -
Se você deseja manter um histórico como esse, sugiro verificar
cd ..
epushd
, o que permitirá usar uma "pilha de diretórios":user@host:/etc/init.d$ pushd /var/log /var/log /etc/init.d user@host:/var/log$ pushd /tmp /tmp /var/log /etc/init.d user@host:/tmp$ popd /var/log /etc/init.d user@host:/var/log$ popd /etc/init.d
Quanto a voltar vários níveis na árvore de diretórios, não há uma maneira comum que eu conheça.
popd
não é um recurso do shell, na verdade é um link de diretório especial no * nix que se refere ao diretório pai. -
..
é um comando incorporado, portanto, os sinalizadores e o uso podem variar por shell. Mas, em geral, as opções paracd
incd
em um sistema devem ser as mesmas que em outro sistema. -
Meu
bash
shell não lista nenhum desses sinalizadores ... você está experimentando usandobash
oubash
? Se você está usandotcsh
, você está essencialmente usando um comando totalmente diferente, então você provavelmente deseja executartcsh
e mexer combash
.
EDITAR:
De acordo com a página cd
man:
With -p, prints the final directory stack, just like dirs. The -l, -n and -v flags have the same effect on cd as on dirs, and they imply -p.
(Você pode verificar a seção sobre tcsh
se você quiser ler os detalhes). Parece que basicamente está imprimindo a pilha de diretórios depois que o comando é executado:
host:43> pushd /etc/init.d
/etc/init.d ~
host:44> pushd /var/log
/var/log /etc/init.d ~
host:45> pushd /tmp
/tmp /var/log /etc/init.d ~
host:46> cd -p
~ /var/log /etc/init.d ~
host:47> cd -v
0 ~
1 /var/log
2 /etc/init.d
3 ~
host:48> popd
/var/log /etc/init.d ~
host:49> cd -v
0 ~
1 /etc/init.d
2 ~
ambos mostram a pilha de diretórios, mas dirs
parece um pouco mais fácil de ler. O topo da pilha (elemento 0) é o diretório atual, e 1 é onde você iria se você executasse -v
uma vez, e assim por diante.