
Costumo cd -
voltar para onde estava. Como posso fazer isso várias vezes no bash? Ou o zsh ou alguma outra ferramenta suportaria isso?
Responder1
No zsh, há uma auto_pushd
opção. Esta opção faz com que cd
se comporte como pushd
. Então você pode simplesmente usar popd
para voltar aos diretórios anteriores.
~ $ setopt auto_pushd
~ $ cd /
/ $ cd /var
/var $ cd /usr
/usr $ dirs
/usr /var / ~
/usr $ popd
/var $ popd
/ $ popd
~ $
No Bash, você pode criar um alias cd
para pushd
.
alias cd=pushd
A única desvantagem disso é que você perderá cd
as três bandeiras. Na cd
entrada de ajuda:
-L força links simbólicos a serem seguidos
-P usa a estrutura de diretório físico sem seguir links simbólicos
-e se a opção -P for fornecida e o diretório de trabalho atual não puder ser determinado com sucesso, saia com um status diferente de zero
Se você precisar usar o cd
builtin real em vez do alias, poderá usar um destes:
'cd'
- Citar o comando faz com que o shell não resolva o alias e use o cd normal.\cd
- Barras invertidas citam caracteres. Se você citar um caractere de uma palavra, o shell tratará a palavra inteira como citada.builtin cd
- Isso diz diretamente ao shell para usar o builtin em vez do alias.
Responder2
Esta é uma maneira rápida e suja de marcar diretórios de maneira conveniente e voltar para eles:
$ a() { alias $1="cd $PWD"; }
Vá para algum lugar e digite:
$ a 1
Agora você tem um comando chamado 1
que acessa cd
o diretório atual no momento. Mais tarde basta digitar:
$ 1
E pronto, de volta a esse diretório. Acho isso muito útil.
Responder3
festa
Encontrei um script, disponívelaqui, que resolveu esse problema para mim. Com isso você pode digitar cd --
para ver os últimos 10 diretórios que usou. Será algo assim:
0 ~/Documents/onedir
1 ~/Music/anotherdir
2 ~/Music/thirddir
3 ~/etc/etc
Para ir ~/Music/thirddir
basta digitarcd -2
zsh
oh-my-zsh fornece algumas funcionalidades muito boas para isso (pelo menos acho que é oh-my-zsh que define isso).
Basicamente, d
é alias dedirs -v | head -10
dirs
é um comando interno do zsh e mostra os últimos diretórios que você visitou.
Além disso, 1
tem o alias de cd -1
e assim por diante para todos os números até 9
.
Na prática, funciona assim:
$ pwd
/home/me/Documents/gems/java_regex/lib
$ d
0 ~/Documents/gems/java_regex/lib
1 ~/Documents/gems/java_regex
2 ~/Documents/gems
3 ~/Documents
4 ~
$ 2
~/Documents/gems
$ pwd
/home/me/Documents/gems
Responder4
Sim. Podemos tornar seu cd
comando mais poderoso. O perfil Bash nos permite personalizá-lo da maneira que quisermos.
Em vez de fazer vários cd
para navegar até o diretório, podemos usarapelido
Por exemplo :
alias ..5="cd ../../../../.."
Isso levará você 5 diretórios acima do nível.