Navegação rápida no diretório do shell bash

119

Eu gostaria de alternar frequentemente entre diretórios que estão em caminhos totalmente não relacionados, por exemplo /Project/Warnest/docs/ e ~/Dropbox/Projects/ds/test/ .

Mas não quero digitar cd /[full-path]/ o tempo todo. Existe algum comando de atalho para mudar para diretórios trabalhados anteriormente?

Uma solução que consegui pensar é adicionar variáveis de ambiente ao meu bash .profile para os diretórios usados com frequência e cd para eles usando essas variáveis.

Mas existe alguma outra solução para isso?

    
por saiy2k 08.02.2012 / 08:33

35 respostas

1

anc é uma ferramenta de linha cmd (abreviação de âncora), que mantém os favoritos dos diretórios. (até agora só testado com bash)

No seu caso:

anc a /Project/Warnest/docs/ ~/Dropbox/Projects/ds/test/

isso adiciona os dois diretórios à lista de âncoras (think bookmarks)

agora, se você quiser pular para /Project/Warnest/docs/ de qualquer lugar no seu tipo de sistema:

anc Warn

e se você quiser pular para ~/Dropbox/Projects/ds/test/ type:

anc ds test

Além de combinar texto contra os caminhos marcados como favoritos, tem muitos outros maneiras convenientes de pular diretórios.

anc i

inicia o modo interativo, que lista todos os marcadores por número, então tudo que você precisa digitar é o número

Se você digitar:

anc Pro[TAB]

uma lista que combina todos os favoritos (no seu caso, ambos os favoritos) é exibida e você pode selecionar usando as teclas de seta, isso é muito rápido e intuitivo.

Obtenha o anc na página do github do projeto: link

Há também um README com o uso de exemplo.

Divulgação completa: sou o autor deste script. Espero que algumas pessoas achem útil.

    
por 05.06.2016 / 16:42
0

diretório de trabalho (wd) da atomic parece ser um bom pacote para isso: link

    
por 28.03.2012 / 13:24
0

Com base nos seus critérios, acho que simplesmente definir um alias para cada caminho usado com frequência no seu ~/.bashrc é o caminho a percorrer. Eu uso esse método pessoalmente.

alias taxes='cd /users/bob/documents/home/finances/taxes'
alias elvis='cd /dropbox/2016/files/music/elvis'

Como mencionei para uma pergunta relacionada ( link ), se você desceu na árvore de diretórios e deseja voltar, .. é o meu favorito. Você pode pular dentro de uma ramificação da árvore facilmente com .. subir um diretório e ../.. two e ../../.. three, etc. Você também pode subir e descer um ramo diferente com o mesmo comando, como cd ../../example ou cd ../../../example/example etc. Para um simples alternar entre diretórios, cd - ou $OLDPWD são suas melhores apostas.

    
por 03.08.2016 / 17:45
0

Eu implementei 2 funções bash:

cdh (histórico de cd): memoriza automaticamente os últimos 9 diretórios e você pode de volta para um deles, digitando o número.

cdb (marcadores de cd): você pode atribuir qualquer caractere ao diretório atual e depois vá para este diretório digitando este caractere.

cdh e cdb trabalham com autocd (também conhecido como "cd witout cd").

Veja o link

    
por 23.12.2016 / 20:28
0

De longe, a melhor solução para navegação rápida em diretórios nos terminais bash e zsh é instalar o script z - jump around . Este roteiro indispensável foi recomendado pelo desenvolvedor do Google Chrome Devtools, Paul Irish, em sua palestra de 2013 Fluent . Eu não posso viver sem isso.

DESCRIPTION Tracks your most used directories, based on 'frecency'.

After a short learning phase, z will take you to the most 'frecent' directory that matches ALL of the regexes given on the command line, in order.

For example, z foo bar would match /foo/bar but not /bar/foo.

[...]

Frecency is a portmanteau of 'recent' and 'frequency'.

    
por 20.04.2017 / 18:41