Incapaz de entender o benefício do autopushd de Zsh

5

Eu tenho em .zshrc

 setopt autopushd

Isso faz com que o cd funcione como pushd. Isso significa que não temos pilha alguma. Quando eu usei, eu não usei stack, já que ele remove stack de mim.

Não sei qual é o benefício do autopushd.

Qual é o benefício do autopushd?

    
por Léo Léopold Hertz 준영 02.07.2009 / 23:26

1 resposta

9

O pushd é como o cd, mas também coloca seu diretório atual em uma pilha. Você pode estar no diretório / some / deep / e depois precisa procurar em / var / www por um tempo:

crb@server /some/deep/directory $ pushd /var/www/
/var/www /some/deep/directory
crb@server /var/www $ [do some stuff]
crb@server /var/www $ popd
/some/deep/directory
crb@server /some/deep/directory $

autopushd significa que mesmo se você digitar 'cd', você terá o efeito de ter digitado 'pushd', que você não lembra que você queria usar até pensar "cara, eu realmente gostaria de poder voltar para onde Eu estava antes ". Você pode então fazer o seu caminho de volta através do seu histórico de diretório.

É útil saber que você sempre pode mudar para o diretório em que estava antes deste (em oposição ao diretório pai) digitando 'cd -'.

Aqui está outro bom artigo .

Editar Por que usar o pushd quando você pode usar cd -?

cd /foo/bar
cd /baz
cd /somewhere/else

cd - só vai te levar para / baz. O pushd te levará até onde você estava antes de digitar 'cd / foo / bar'.

A pilha de diretórios é particularmente útil em scripts, em que você não pode simplesmente voltar ao histórico de comandos e reconhecer o nome do diretório em que estava:

pushd /var/foo
# run a command, which might well change your PWD at the end of its execution - especially if it fails
popd

Agora você tem a garantia de estar em / var / foo.

    
por 02.07.2009 / 23:49

Tags